簡體   English   中英

Excel VBA 中的 Application.Windows() 和 Excel.Windows() 有什么區別?

[英]What is the difference between Application.Windows() and Excel.Windows() in Excel VBA?

基本上,我什么時候應該使用 Application.Windows(),什么時候應該使用 Excel.Windows()? 任何代碼示例都是特別可取的。

Excel.Windows()允許您寫入它 [1],而Application.Windows()根據文檔是只讀的 [2]。 [1] , [2]

除了Application版本的只讀區別之外,它們是相同的。 因此,如果您只是閱讀屬性,請使用應用程序版本,如果您需要更改某些內容,請使用Excel版本。

Excel庫具有名為WindowsApplication類。 然后Excel.Windows是類Windows的完全限定名稱。 Application具有名為Windows屬性,它返回所有工作簿中的窗口集合。

因此,當您要引用類Windows時可以使用Excel.Windows ,而要引用 windows 對象時將使用Application.Windows屬性 哈。

在對象瀏覽器中我們可以看到: 在此處輸入圖片說明


命名有問題。 Windows和屬性Windows的名稱相同。 以下所有代碼示例使用Windows屬性引用相同的窗口對象集合:

Dim eaw As Excel.Windows
Dim aw As Excel.Windows
Dim ew As Excel.Windows

Set eaw = Excel.Application.Windows
Set aw = Application.Windows
Set ew = Excel.Windows

代碼Set aw = Application.WindowsSet ew = Excel.Windows是相同的,因為許多返回最常見對象的屬性和方法可以在沒有Application對象限定符的情況下使用。 可以在沒有 Application 對象限定符的情況下使用的屬性和方法被認為是global ,對於Windows也是如此。

總之:

  • 在聲明Excel.Windows類型的變量時,使用完全限定名稱(例如Dim wnds As Excel.Windows

  • 當提到窗口對象的集合時,您選擇哪種方式取決於您,以下所有內容都是等效的(返回相同的集合) Set eaw = Excel.Application.Windows , Set aw = Application.Windows , Set ew = Excel.Windows . 注意:根據我的 Excel 2007 的對象瀏覽器,這個集合是read-only

暫無
暫無

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

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