Excel VBA超出范围

Excel VBA超出范围,vba,csv,excel,Vba,Csv,Excel,我发现了这段代码,并尝试对其进行修改,以便将导入的数据存储在另一张表中 第一个代码是Destination:=ActiveCell,我试图更改它,以便将数据存储在另一个工作表中。 我也试过这样做:Destination:=Workbook.Sheets(CSV.Cells)(1,1)),但它也不起作用 我也在寻找代码来自动选择最新的csv文件名为export price,但我还没有找到解决方案 Sub LoadProducts() Dim fileName As String, fold

我发现了这段代码,并尝试对其进行修改,以便将导入的数据存储在另一张表中

第一个代码是
Destination:=ActiveCell
,我试图更改它,以便将数据存储在另一个工作表中。 我也试过这样做:
Destination:=Workbook.Sheets(CSV.Cells)(1,1))
,但它也不起作用

我也在寻找代码来自动选择最新的csv文件名为export price,但我还没有找到解决方案

Sub LoadProducts()
    Dim fileName As String, folder As String

    folder = "C:\Users\CP\Downloads\"
    fileName = ActiveCell.Value

    ActiveCell.Offset(1, 0).Range("A1").Select


    With ActiveSheet.QueryTables _
        .Add(Connection:="TEXT;" & folder & fileName, Destination:=Workbook.Sheets(CSV).Cells(1, 1))
        .FieldNames = True
        .RowNumbers = False
        .FillAdjacentFormulas = False
        .PreserveFormatting = True
        .RefreshOnFileOpen = False
        .RefreshStyle = xlInsertDeleteCells
        .SavePassword = False
        .SaveData = True
        .AdjustColumnWidth = True
        .RefreshPeriod = 0
        .TextFilePromptOnRefresh = False
        .TextFilePlatform = 850
        .TextFileStartRow = 1
        .TextFileParseType = xlDelimited
        .TextFileTextQualifier = xlTextQualifierDoubleQuote
        .TextFileConsecutiveDelimiter = False
        .TextFileTabDelimiter = False
        .TextFileSemicolonDelimiter = True
        .TextFileCommaDelimiter = True
        .TextFileSpaceDelimiter = False
        .TextFileColumnDataTypes = Array(1, 1, 1, 1)
        .TextFileTrailingMinusNumbers = True
        .Refresh BackgroundQuery:=False
    End With
End Sub

您需要正确声明对象,然后使用它们。这里有一个例子。如适用,进行更改

Dim wb As Workbook, thiswb As Workbook
Dim ws As Worksheet, thisws As Worksheet

'~~> Change as applicable
Set thiswb = ThisWorkbook
Set thisws = thiswb.Sheets("Sheet1")

CSV = "Sheet1"
Set wb = Workbooks.Open("C:\Blah Blah.xlsx")
Set ws = wb.Sheets(CSV)

With thisws.QueryTables _
    .Add(Connection:="TEXT;" & folder & Filename, Destination:=ws.Cells(1, 1))

谢谢你,阿恩瑟。现在在文件夹上会有更多的csv文件要导入。当用户下载一个新的csv文件时,windows会给它一个新的编号export-price.csv export price(2).csv export price(3).csv export price(4).csv我可以使用代码选择包含导出价格的最新csv文件吗?是的,您可以这样做,或者您可以使用文件对话框让用户选择该文件。您知道我是怎么做的吗,在
应用程序.Getopenfilename
:)上搜索SO或事实上Excel的inbuit帮助有一个完整的代码示例。