我不会发布完整的代码,因为它非常庞大-我将重点介绍引起错误的部分。
该宏应该复制在excel中生成的URL,在IE中打开它们,将源代码复制到另一个工作表,在此代码中查找内容,将结果保存在特定的单元格中,删除工作表并转到下一个URL。它工作得很好,它复制了许多URL的源代码,但是对于某些URL却失败了。当我手动打开URL时,它们可以正常工作,但是Excel以某种方式向我抛出错误。
你们可以检查以下内容是否可以帮助我更好地了解问题出在哪里?
以下是两个示例链接:
这个效果很好-link1 此错误引发错误1004-link2
这是代码:
Sub CC_Check()
Dim ie As InternetExplorer
Dim html As HTMLDocument
Dim URL As Range
Dim Rng As Range
Dim ws1 As Worksheet
Set ws1 = Worksheets("One Code")
Set ie = New InternetExplorer
Set Rng = ws1.Range("A3:A18")
For Each URL In Rng
ThisWorkbook.Sheets.Add After:=Sheets(Sheets.Count)
ActiveSheet.Name = ws1.Cells(URL.Row, 2).Value & "_" & ws1.Cells(6, 7).Value
ie.Visible = False
ie.navigate URL.Value
Do While ie.readyState <> READYSTATE_COMPLETE
DoEvents
Loop
Set html = ie.document
Range("A1").Value = html.DocumentElement.outerHTML
Dim arr
arr = Split(html.DocumentElement.outerHTML, vbLf)
Range("A1").Resize(UBound(arr) + 1, 1).Value = Application.Transpose(arr) '<-- this line causing error 1004
答案 0 :(得分:0)
// ...
unwind("profiles"),
project().and(ctx -> new Document("profiles", asList("$profiles"))).as("profiles")
有很多问题。
Application.Transpose
)因此,押注押注是手动进行转换,这很容易。顺便说一下,您应该为添加的工作表使用UBound(arr) = 1
变量-永远不要依赖Worksheet
。以下代码仅在新工作表不存在时才会创建它(否则它将清除其内容,因此您可以多次运行该代码
Activesheet