好的。所以這是我的代碼如何工作的思考過程。我有一張表格,其中列出了我想使用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