运行时错误91.对象变量或未设置块变量

时间:2015-12-17 21:50:45

标签: vba ms-access access-vba

如果你可以帮我解决这个持续的错误,那就太棒了。我试图从IE网站上抓一张桌子并将其插入二维数组中。

代码如下:

Dim matrix(25, 7) As Variant
Set doc = ie.Document

Set Tbl = doc.getElementsByTagName("td").Item(6)
matrix(0, 1) = Tbl.innerText

Set Tbl = doc.getElementsByTagName("td").Item(7)
matrix(0, 2) = Tbl.innerText

Set Tbl = doc.getElementsByTagName("td").Item(20)
matrix(0, 3) = Tbl.innerText [Error Points to this line]

我已经多次尝试进行故障排除。没运气。它一直有效直到项目达到12项(12)。我到底出错了什么或错过了什么?这只是代码的一部分。还有更多,但它不会继续进行,因为错误发生在这一堆的最后一行。感谢。

例如,我知道它应该有效,而且(20)有数据,因为这个测试循环工作正常。

将整数调整为

a = 0

做一个< 200

MsgBox(a)

q = ie.Document.getElementsByTagName(" td")。Item(a).innerText

MsgBox(q)

a = a + 1

循环

当a = 20时,Msgbox会显示网页表格中的地址。

1 个答案:

答案 0 :(得分:1)

以下是一些可以修改的代码,只要您愿意就可以等待。它来自http://www.exceltrick.com/formulas_macros/vba-wait-and-sleep-functions/

Option Compare Database
Option Explicit
#If VBA7 Then
    Public Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) 'For 64 Bit Systems
#Else
    Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long) 'For 32 Bit Systems
#End If
Sub SleepTest()
    'MsgBox "Execution is started"
    Sleep 1000 'delay in milliseconds (1000 = 1 second)
    'MsgBox "Execution Resumed"
End Sub