2017-04-14 53 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和新床单。