2017-06-16 146 views

回答

3

Excel.Windows()讓你寫信給它[1],而Application.Windows()是隻讀[2]根據文檔。 [1][2]

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

+0

@接受我相信嗎?我老實說不是100%肯定的,坦率地說,我認爲這並不重要。 VBA是一團糟,我試着寫出完成任務所需的最小數量。背景主要在服務器端Web,但是在今年夏天停止了VBA的工作。 –

+0

@AdamLeBlanc:對不起,你們兩人之間跳躍,但你爲什麼認爲VBA是一團糟? –

+0

@SiddharthRout它只是缺乏很多其他語言所具有的功能,我已經習以爲常了,而且它的功能與大多數其他語言完全不同。我覺得微軟最好讓你使用c#或其他.NET語言之一來執行應用程序腳本,因爲這些語言以更標準的方式來完成任務。對於非程序員來說,Visual Basic有很多易用的東西,這對開發人員來說有點令人沮喪。 –

3

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

所以,你可以使用Excel.Windows當你想引用一個類Windows,當你想引用窗口對象,你會用Application.Windows財產。 HTH。

在對象瀏覽器,我們可以看到: enter image description here


有一個與命名問題。類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對象限定符。可以在沒有應用程序對象限定符的情況下使用的屬性和方法被認爲是globalWindows也是如此。

總結:

  • 在聲明類型的變量Excel.Windows當你完全合格的名字,例如:你會不會犯任何錯誤Dim wnds As Excel.Windows

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

相關問題