VBA用于循环将数据刮入新工作表

VBA用于循环将数据刮入新工作表,vba,loops,excel,for-loop,Vba,Loops,Excel,For Loop,我正在excel中进行一些数据清理,并尝试使用以下代码将数据粘贴到新的工作表中: Sub ZillowScrape() ' ' ZillowScrape Macro ' ' Keyboard Shortcut: Ctrl+z For x = 1 To 5 Worksheets("URLs").Select Worksheets("URLs").Activate mystr = "URL;http://www.zillow.com/homedetails/332

我正在excel中进行一些数据清理,并尝试使用以下代码将数据粘贴到新的工作表中:

Sub ZillowScrape()
'
' ZillowScrape Macro
'
' Keyboard Shortcut: Ctrl+z


    For x = 1 To 5
    Worksheets("URLs").Select
    Worksheets("URLs").Activate
    mystr = "URL;http://www.zillow.com/homedetails/332-Blanca-Ave-Tampa-FL-33606/45111195_zpid/"
    mystr = Cells(x, 1)

    ThisWorkbook.Worksheets.Add(After:=Worksheets(Worksheets.Count)).Name = x

   With ActiveSheet.QueryTables.Add(Connection:=mystr, Destination:=Range("$A$2"))
    'CommandType = 0
    .Name = "01000_1"
    .FieldNames = True
    .RowNumbers = False
    .FillAdjacentFormulas = False
    .PreserveFormatting = True
    .RefreshOnFileOpen = False
    .BackgroundQuery = True
    .RefreshStyle = xlInsertDeleteCells
    .SavePassword = False
    .SaveData = True
    .AdjustColumnWidth = True
    .RefreshPeriod = 0
    .WebSelectionType = xlSpecifiedTables
    .WebFormatting = xlWebFormattingNone
    .WebTables = "3,4,5"  '---> Note: many tables have been selected for import from the website
    .WebPreFormattedTextToColumns = True
    .WebConsecutiveDelimitersAsOne = True
    .WebSingleBlockTextImport = False
    .WebDisableDateRecognition = False
    .WebDisableRedirections = False
    .Refresh BackgroundQuery:=False
    End With
Next x
End Sub
我不断收到运行时错误“1004”:行的应用程序定义或对象定义错误:

With ActiveSheet.QueryTables.Add(Connection:=mystr, Destination:=Range("$A$2"))

我认为问题出在这段代码中:

mystr = "URL;http://www.zillow.com/homedetails/332-Blanca-Ave-Tampa-FL-33606/45111195_zpid/"
mystr = Cells(x, 1)
我想解决办法是:

 mystr = "URL;http://www.zillow.com/homedetails/332-Blanca-Ave-Tampa-FL-33606/45111195_zpid/"+Cells(x,1).value

我猜您的QueryTable没有被创建,然后您的With语句失败了,因为您试图在一个不存在的对象上设置属性。尝试将代码分解,将QueryTable设置为变量,然后检查变量是否有值。e、 g.设置qryResults=ActiveSheet.QueryTables.AddConnection:=mystr,Destination:=Range$A$2。如果变量为空,那么您可以关注Add方法不起作用的原因