我目前能够通过下面的代码上传数据然后处理表格将csv文件数据输入到Excel VBA中,当然不是最好的方式,因为我只对一些数据感兴趣并在使用数据后删除表格:
Sub CSV_Import()
Dim ws As Worksheet, strFile As String
Set ws = ActiveSheet 'set to current worksheet name
strFile = Application.GetOpenFilename("Text Files (*.csv),*.csv", ,"Please select text file...")
With ws.QueryTables.Add(Connection:="TEXT;" & strFile, Destination:=ws.Range("A1"))
.TextFileParseType = xlDelimited
.TextFileCommaDelimiter = True
.Refresh
End With
End Sub
Run Code Online (Sandbox Code Playgroud)
是否可以简单地将csv加载到VBA中的二维变量数组中,而不是通过使用excel工作表?
我想在VBA中填充一个数组,其中只有符合特定条件的行数.我想尽可能快的方法(例如,类似的东西RowArray = index(valRange=valMatch).row
)
下面是(慢)范围循环的代码.
Current Code
Sub get_row_numbers()
Dim RowArray() As Long
Dim valRange As Range
Dim valMatch As String
Set valRange = ActiveSheet.Range("A1:A11")
valMatch = "aa"
ReDim RowArray(WorksheetFunction.CountIf(valRange, valMatch) - 1)
For Each c In valRange
If c.Value = valMatch Then RowArray(x) = c.Row: x = x + 1
Next c
End Sub
Run Code Online (Sandbox Code Playgroud)