Excel的VBA – 似乎与ws命名错误

我很绝望,我一直在进入VBA错误1004为下面的代码:

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 

它看起来像我下面的两行是有问题的,因为我可以正确创build和保存wb,并且只运行错误1004而不创build新的工作表ws“YAHOO_DATA”。

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

但是,什么是错的? 我有另一个运行几乎完全相同的代码的Excel文件,它运作良好…

如果有人能为我解决这个问题,我将不胜感激…已经有2个小时了,因为我已经盯着这个代码了! 谢谢!

博斯科

更改以下行

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

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

在某些MS Excel版本中,新工作簿没有创build3个新工作表。