好的。所以这是我的代码如何工作的思考过程。我有一张表格,其中列出了我想使用for循环遍历的Web地址列表。对于每个网址,我想将整个网页复制并粘贴到工作簿中的临时工作表中。在页面被粘贴到Excel(2010)后,我会做一些格式化。只从临时工作表复制并粘贴我想要的内容到主工作表。然后在Internet Explorer中导航下一个链接,就像在将网页粘贴到临时表之前,然后将所需的内容附加到主表单。我遇到以下问题:VBA自动化从网站复制/粘贴
1)无论我声明要粘贴到网页的工作表总是粘贴到第一张表。这恰好是我有我的命令按钮的工作表,但这不应该有所作为。应该是?
2)附加到主表单不起作用。当宏完成运行时,似乎已粘贴到主表的唯一记录来自最后一个网页。
我在想,也许我需要做的是在选择/复制/粘贴网页到Excel以修复问题#2之间添加一段时间的暂停。对这些问题的帮助将不胜感激。
Private Sub CommandButton1_Click()
Dim IE As Object
startTime = Now()
Set IE = CreateObject("InternetExplorer.Application")
For rows1 = 2 To 11
For columns1 = 2 To 2
strLink = ThisWorkbook.Sheets("links").Cells(rows1, columns1)
With IE
.Visible = True
.Navigate strLink
Do While IE.ReadyState <> 4
DoEvents
Loop
IE.ExecWB 17, 0
IE.ExecWB 12, 2
ThisWorkbook.Sheets("temp").Paste Range("A1")
End With
'Copy/paste and format from temp to master sheet
nextRow = ThisWorkbook.Sheets("master").Range("A1").End(xlDown).Row + 1
ThisWorkbook.Sheets("temp").Range("A173:S247").Copy
ThisWorkbook.Sheets("Master").Range("A" & nextRow).PasteSpecial Paste:=xlPasteValues
Next columns1
Next rows1
endTime = Now()
MsgBox ("Done running. It took from " & startTime & " to " & endTime & ".")
End Sub
为什么遵循这样一个漫长的过程?为什么不提取相关信息而不是整个页面?你可能会发现这个链接有趣... http://stackoverflow.com/questions/8798260/html-parsing-of-cricinfo-scorecards –
你会怎么做与铬相同的事情?我可以让它打开一个chrome的实例,但只要它试图使它看起来错误了。 '昏暗CHR作为对象 壳牌( “” “C:\程序文件(x86)\谷歌\铬\应用\的chrome.exe” “”) 对于rows1 = 1至5000 对于columns1 = 1至1 与CHR .Visible = True' 一个它得到。看不见它的错误。 – user1787114