2013-10-16 100 views
1

我找到了这段代码,我试图改变它,所以导入的数据存储在另一个工作表中。Excel VBA超出范围

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

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

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 

回答

2

您需要正确声明您的对象然后使用它们。这是一个例子。按适用情况更改。

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)) 
+0

感谢您的支持。现在在文件夹中将会有更多的一个csv文件导入。当用户下载一个新的窗口,给它一个新的号码 出口price.csv 出口价格(2).csv格式 出口价格(3).csv格式 出口价格(4).csv格式 灿我使用代码来选择包含export-price的最新csv文件? – Tupolev

+0

是的,你可以这样做,或者你可以使用文件对话框让用户选择文件。 –

+0

你知道我是怎么做的吗 – Tupolev