VBA用于循环将数据刮入新工作表
我正在excel中进行一些数据清理,并尝试使用以下代码将数据粘贴到新的工作表中: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
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方法不起作用的原因