VBA很新,此错误代码有问题。
运行时错误'91'对象变量或未设置块变量
我正在尝试从网站中提取数据,然后再提取到Excel文档中。我的Excel文档为Book2
,模块名为Module1
。我将在下面粘贴代码。
Sub WebNavigate()
Dim CreatingObject As Object
Dim WebNavigate As Object
Set objIE = CreatingObject("InternetExplorer.Application")
WebSite = "website link"
With objIE
.Visable = True
.navigate WebSite
Do While .Busy Or .readyState <> 4
DoEvents
Loop
Set elements = .document.getElementByClass("timark")
Sheet1.Cells(i, 8) = element.innerText
End With
End Sub
答案 0 :(得分:2)
在缺少HTML / URL的情况下:
1)您的//check if not null.
StringBuilder buf = new StringBuilder(input);
char ch = buf.getCharAt(0).toUpperCase();
buf.setCharAt(0, ch);
return buf.toString();
的拼写错误
2)以下:
Visible
缺少Set elements = .document.getElementByClass("timark")
,因为它返回一个集合,应该为s
:
ClassName
3)您可能需要暂停或循环以确保Set elements = .document.getElementsByClassName("timark")
在页面上可用。
4)这个
elements
您尚未声明和分配Sheet1.Cells(i, 8) = element.innerText
(您也没有声明element
)。您可以在elements
中使用。
例如
For Loop
5) Dim element As Object, elements As Object
Set elements = .document.getElementsByClassName("timark")
For each element in elements
应该为Creating
(同样要注意),您需要声明Create
objIE
6)Dim objIE As Object
Set objIE = CreateObject("InternetExplorer.Application")
在任何地方都没有声明,并且必须大于1,因为工作表中没有第0行的单元格。另外,i
表示没有符号的循环,应增加循环中的时间以避免覆盖同一单元格。
7)i
未分配,代码中目前不需要。
8)为避免上述情况,请在代码顶部使用Dim WebNavigate As Object
(如前所述)。