標籤:結合 msdn 提高 自己的 方法 對比 play 完整 順序
對象就是我們Excel和程式的操作對象。比如儲存格、活頁簿。我們對於Excel的每個操作其實都是對相應對象的操作。比如選中儲存格、儲存工作表。
對象存放在物件模型裡,2013以上版本似乎已經沒有離線文檔,只有線上的:https://msdn.microsoft.com/ZH-CN/library/ff194068.aspx
每個對象又有自己的屬性和方法,最後構成完整的事件。
記住常用對象:
Application對象:
代表的是Excel的整個程式,所以是最上層。
ScreenUpdating屬性
Application.ScreenUpdting=True (預設為真),作用在於,當程式有多個計算步驟時,VBA預設是每一個計算結果一個顯示,改為false後,可以讓程式執行完後再顯示結果,可以提高程式效率。(雖然感覺沒啥用)
對比以下兩段程式:
第一段代碼中,程式有四步,按順序執行和顯示。
第二段代碼中,四個步驟按順序執行,最後一步將結果同時展示。
DisplayAlerts屬性
看到Alert這個詞大概知道是幹嘛的了。
一個刪除工作表的程式:
在運行程式後,會彈出一個警告對話,詢問是否刪除工作表,十分影響效率。
(雖然我依然覺得沒啥實用的,我的工作表還不會多到需要用代碼來刪除)
如果在最初加上:
Application.DisplayAlerts=False (預設為True)
則不會顯示警告,直接執行操作。同樣的,在最後記得將預設值修改為true。
EnableEvents屬性
此屬性用於啟用或禁止事件。
這裡的事件多指在程式中的某一個可執行操作,代碼,比如選中儲存格。同樣的,我們如果要禁止某一事件執行,在他的程式碼前面加上:
Application.EnableEvents=False
同樣記得後面改回預設值True。
WorksheetFunction屬性
介於VBA中很多函數都沒有,(之前連SUM都沒有用)使用這個屬性可以調用部分工作表函數,
比如我要計算A1到A10間的求和,在VBA中,
第一種,直接使用函數:
Cells(25, "A") = "=sum(A1:A10)",就相當於將公式寫入儲存格,不過沒必要。
第二種,調用屬性:
Cells(25, "A") =Application.WorksheetFunction.Sum(Range("A1:A10"))
記住這裡需要結合Range,選擇求和地區。
另外,如果VBA中已有的函數(不多),不能用這種方式調用。
Application的常用屬性
常用對象之Application