【发布时间】:2015-07-26 23:52:12
【问题描述】:
我在 VBA 中引用 windows 对象时遇到问题。它引发以下错误:“错误 5(无效的过程调用或参数)。我找不到原因,因为我没有看到任何编程错误。
Public Sub TestWindowhandle()
Dim lResult As Long
Dim objShell, wins, winn
Dim IE_Count As Long, i As Long, This_PID As Long
On Error GoTo TestWindowhandle_Error
Set objShell = CreateObject("Shell.Application")
Set wins = objShell.Windows
IE_Count = wins.Count
For i = 0 To (IE_Count - 1)
Set winn = wins.Item(i)
Next i
On Error GoTo 0
Exit Sub
TestWindowhandle_Error:
MsgBox "Error " & Err.Number & " (" & Err.Description & ") in line " & Erl & " in procedure TestWindowhandle of Module Module1"
Stop
End Sub
【问题讨论】:
-
错误来自:Set winn = wins.Item(i)
-
您是否尝试将
wins.Item(i)替换为wins(i)或wins.Items(i)? -
这两个建议也会抛出错误
-
在 VBE 中观察“locals”窗口时,正确创建了 objShell 和 wins 对象。参考wins.count也很好用。 .item 属性在本地窗口中也可用。我不明白为什么它不起作用。