好的。所以这是我对这段代码应该如何工作的思考过程。我有一张包含我想使用 for 循环遍历的网址列表的工作表。对于每个网址,我想将整个网页复制并粘贴到工作簿中的临时工作表中。将页面粘贴到 Excel(2010) 后,我会进行一些格式化。仅将我想要的内容从临时工作表复制并粘贴到主工作表。然后在 Internet Explorer 中导航下一个链接,就像在将网页粘贴到临时表之前一样,然后将我需要的内容附加到主表中。我遇到以下问题:
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