我正在尝试使用excel宏读取csv文件,该csv文件在每一行上没有相同数量的值。我正在尝试创建一个嵌套循环,一次遍历每一行中的每个值以更新GUI。
我可以打开csv并通过硬编码在行中读取我想读取的行,但是希望能够灵活地利用各种用户生成的csv文件。
Private Sub LoadSettings_btn_Click()
Dim strfilename As String
Dim fDialog As FileDialog, result As Integer
Set fDialog = Application.FileDialog(msoFileDialogFilePicker)
fDialog.AllowMultiSelect = False
fDialog.Title = "Select a file"
fDialog.InitialFileName = "H:\Personal\SideProjects"</code>
If fDialog.Show = -1 Then
strfilename = fDialog.SelectedItems(1)
End If
Dim LineItems As String
Open strfilename For Input As #1
row_number = 0
Do Until EOF(1)
Line Input #1, LineFromFile
LineItems = Split(LineFromFile, ",")
ActiveCell.Value = LineItems.Length()
Loop
Close #1
End Sub
对于测试文件,我希望得到数组的长度,第一行为1,第二行为3。但是我被告知我有一个无效的限定词。
答案 0 :(得分:1)
但是创建数组时,数组中的项目数为:
UBound(arr) - LBound(arr) + 1
例如:
Sub qwerty()
arr = Split("abc,def,ghi", ",")
MsgBox UBound(arr) - LBound(arr) + 1
End Sub
注意:
这是正确的,即使您手动创建如下数组:
Dim poiuy( 13 to 27) As String