小编The*_*man的帖子

将csv文件加载到VBA数组而不是Excel工作表中

我目前能够通过下面的代码上传数据然后处理表格将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工作表?

excel vba excel-vba

18
推荐指数
3
解决办法
8万
查看次数

是否可以使用符合特定条件的行号填充数组而不进行循环?

我想在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)

arrays excel vba excel-vba

11
推荐指数
2
解决办法
8365
查看次数

标签 统计

excel ×2

excel-vba ×2

vba ×2

arrays ×1