簡體   English   中英

VBA中Internet Explorer窗口的數據類型是什么?

[英]What is the data type of an internet explorer window in VBA?

我只是想知道我們如何從以下代碼中聲明“ ie”?

Dim objShell As Object
Set objShell = CreateObject("Shell.Application")
Set ie = objShell.Windows(x)

謝謝 :)

您可以只使用Object但是如果啟用Microsoft Internet Controls庫,它會更容易,因為它會創建更多特定的對象。 這使您可以在編碼時使用智能感知,從而使您不必再猜測可用的屬性和動作。 啟用后,下面是一些示例代碼。

Dim ieobject As InternetExplorer

Set ieobject = New InternetExplorer
ieobject.Visible = True


ieobject.navigate Url:="https://www.StackOverFlow.com"


'get the HTML document for the page.
    Dim ieDOCUMENT As HTMLDocument
    Set ieDOCUMENT = ieobject.document

這個站點很好地介紹了它 (以及許多其他VBA主題)

如果收到錯誤“ 用戶定義的類型未定義” ,則尚未啟用Microsoft Internet Controls庫。

在此處輸入圖片說明

在過程中放置​​一個斷點(F9),然后在遇到斷點時調出Locals工具窗口(查看/> Locals)。

運行時數據類型將出現在“類型”(Type)列1下

VBE當地人工具窗口

如果未引用定義這些類和接口的類型庫,則聲明站點使用的類型為ObjectVariant因為沒有對該庫的編譯時引用,所以編譯器無法在編譯時綁定類型-time,因此如果嘗試以其他方式聲明對象變量,則會出現編譯錯誤。

通過引用適當的類型庫 ,您仍然可以使用后期綁定並將所有內容都聲明As Object ,但這對於在那里等待使用的庫是很愚蠢的。

在您的特定示例(無論如何提供)中, ie的類型為... Object ,引用為Nothing ,因此期望對ie任何成員調用均引發錯誤91:

在此處輸入圖片說明


1除非涉及用戶界面,否則這是VBE中的錯誤,不太可能看到修復程序。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM