2017-04-14 20 views
0

我很絕望我一直運行到VBA錯誤1004下面的代碼:Excel的VBA - 似乎有點毛病WS命名

Sub GetRawPrices() 
    Dim wb As Workbook 
    Dim ws As Worksheet 
    Dim wq As QueryTable 
    Dim url As String 
    Dim wb0 As Workbook 
    Set wb0 = ThisWorkbook 
    Dim i As Integer 
    For i = 2 To wb0.Worksheets("Consolidation").Range("A1").End(xlDown).Row Step 1 
    Set wb = Workbooks.Add 
    wb.SaveAs Filename:="G:\2015July\Desktop2\HORIZONTAL\" & wb0.Worksheets("Consolidation").Cells(i, 1).Value & ".xlsx" 
    url = _ 
    "TEXT;" & _ 
    "http://ichart.finance.yahoo.com/table.csv?" & _ 
    "s=" & _ 
    wb0.Worksheets("Consolidation").Cells(i, 1).Value & _ 
    "&" & _ 
    "a=01&" & _ 
    "b=01&" & _ 
    "c=2015&" & _ 
    "d=03&" & _ 
    "e=12&" & _ 
    "f=2017&" & _ 
    "g=d&" & _ 
    "ignore=.csv" 
    Set ws = wb.Worksheets.Add(After:=Sheet3) 
    ws.Name = "YAHOO_DATA" 
    Set wq = ws.QueryTables.Add(_ 
    Connection:=url, _ 
    Destination:=ws.Range("A1")) 
    wq.TextFileParseType = xlDelimited 
    wq.TextFileCommaDelimiter = True 
    wq.Refresh BackgroundQuery:=False 
    wb.Close savechanges:=True 
    Next i 

End Sub 

它看起來像我有什麼不對下面兩行,因爲我可以正確地創建和保存wb,並且我只運行到錯誤1004而不創建新的工作表ws「YAHOO_DATA」。

Set ws = wb.Worksheets.Add(After:=Sheet3) 
    ws.Name = "YAHOO_DATA" 

但是會出現什麼問題?我有另一個Excel文件,運行幾乎完全相同的代碼,它運作良好...

我將不勝感激,如果任何人都可以爲我解決這個問題...已經2個小時,因爲我已經盯着這個代碼已經!謝謝!

黃宗澤

+0

當您使用調試器來遍歷代碼時,您會看到什麼?當發生錯誤時,Excel會告訴你究竟是哪一行造成的,所以你不必猜測。 –

+0

此外,您是否在此搜索了您正在收到的確切錯誤消息?這個問題在此之前已經被多次詢問(並回答過);當然,其中一個現有的答案會有幫助。 –

+0

你好肯,錯誤是「運行時錯誤」1004「:應用程序定義的或對象定義的錯誤 –

回答

3

更改以下行

Set ws = wb.Worksheets.Add(After:=Sheet3) 

Set ws = wb.Worksheets.Add(After:=wb.Sheets(wb.Sheets.Count)) 

在某些MS Excel版本,新的工作簿沒有創建3和新牀單。