我无法弄清如何使用Excel VBA读取简单的CSV文件。
只要文件路径是有效的字符串,如果我想打开和读取CSV文件,这个语句应该就足够了?
只要文件路径是有效的字符串,如果我想打开和读取CSV文件,这个语句应该就足够了?
' Open file and read contents
Open FilePath For Input As #1
FileContent = Input(LOF(1), 1)
Close #1
接下来,我想创建一个具有行和列的二维数组。我认为这应该可以完成任务,但实际上并没有。
' Split file content into rows
RowsArray = Split(FileContent, vbCrLf)
' Split rows into columns
Dim i As Long
For i = LBound(RowsArray) To UBound(RowsArray)
ColumnsArray = Split(RowsArray(i), ",")
Next i
它不会报错,但是列数组为空,
整个函数在这里:
Public Function ReadCSVFileInToArray(FilePath)
' Define variables
Dim FileContent As String
Dim RowsArray() As String
' Open file and read contents
Open FilePath For Input As #1
FileContent = Input(LOF(1), 1)
Close #1
' Split file content into rows
RowsArray = Split(FileContent, vbCrLf)
' Split rows into columns
Dim i As Long
For i = LBound(RowsArray) To UBound(RowsArray)
ColumnsArray = Split(RowsArray(i), ",")
Next i
ReadCSVFileInToArray = ColumnsArray
End Function
我怀疑RowsArray和ColumnsArray都需要重新调整大小,但在分割它们之前如何知道它们的尺寸?
这似乎应该很容易,所以我显然没有理解某些东西。我甚至在网上找不到一个清晰的解释。
ColumnsArray
和ColumnArray
不一样,或者你是想使用两个变量?其次,你代码中的Redim
由于使用了Variant类型是无法工作的:https://learn.microsoft.com/en-us/office/vba/Language/Reference/User-Interface-Help/invalid-redim - Storax