[英]Trying to read data into memory
我正在尝试将以下数据读入 memory 以将其传递到 Excel 单元格。 但是,它似乎只读作一条“线”。
Component details Export from File:-
="Reference","Description","Number","Custom"
="Hello",="Test data",="J125",="Door"
="Hello",="Test data",="J126",="Door"
="Hello",="Test data",="J127",="Door"
="Hello",="Test data",="J128",="Door"
="Hello",="Test data",="J129",="Door"
="Hello",="Test data",="J130",="Door"
这是我正在使用的代码:
strfile = Application.GetOpenFilename("Text Files (*.csv),*.csv", , "CATIA Data")
If strfile = False Then
GoTo HERE:
End If
Open strfile For Input As #1
ROW_NUMBER = 1
Do Until EOF(1)
Line Input #1, linefromfile
counter = 1
Result = Split(linefromfile, ",")
For i = LBound(Result()) To UBound(Result())
DisplayText = DisplayText & Result(i) & vbNewLine
counter = counter + 1
J = i + 1
ws.Cells(ROW_NUMBER, J) = Replace(Result(i), Chr(34), "")
Next i
ROW_NUMBER = ROW_NUMBER + 1
Loop
Close
不幸的是,对于我想用这个宏做的比较和更新,导入 CSV 会工作得很好,我认为导入 memory 然后选择我想放入工作表的数据位会更干净。
您有几个直接问题会导致错误。
Ubound
和LBound
编码是错误的。 去掉括号。="Hello"
这样的公式,或者您需要替换公式和引号(不清楚您的目标是什么)。我针对您的测试文本文件运行了下面修改后的代码,并得到了以下结果。 您可以在此处查看/测试您是否获得了自己的文件副本。
Sub fixCSVLOAD()
strfile = Application.GetOpenFilename("Text Files (*.csv),*.csv", , "CATIA Data")
Dim ws As Worksheet
Set ws = ActiveSheet
Open strfile For Input As #1
ROW_NUMBER = 1
Do Until EOF(1)
Line Input #1, linefromfile
counter = 1
Result = Split(linefromfile, ",")
For i = LBound(Result) To UBound(Result)
DisplayText = DisplayText & Result(i) & vbNewLine
counter = counter + 1
j = i + 1
If i = 2 Then
ws.Cells(ROW_NUMBER, j) = Replace(Result(i), Chr(34), "")
Else
ws.Cells(ROW_NUMBER, j) = Replace(Result(i), Chr(34), """")
End If
Next i
ROW_NUMBER = ROW_NUMBER + 1
Loop
Close
End Sub
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.