VBA程式設計 注意事項

2021-05-26 07:37:49 字數 2502 閱讀 5497

1

、在自定義函式前加上

private

關鍵字進行宣告,該函式將不會出現在

excel的"

貼上函式

"對話方塊中,但仍然可以在公式中運用它們。如果是專門為其他的

vba過程開發的自定義函式,則應該使用

private

關鍵字進行宣告。2、

通常,使用者自定義函式後,在

"貼上函式

"對話方塊中將會出現在

"使用者定義

"類別中。如果希望自定義函式出現在其它的類別中,必須編寫和執行

vba**為自定

義函式指定類別。如執行

語句後,將自定義的

sumpro

函式指定給

"統計函式

"類別。3、與

sub過程不同,自

定義函式

function

過程並不出現在巨集對話方塊中;當執行

vbe編輯器中的"執行

——執行子過程

/使用者窗體

"命令時,如果游標位於某

function

過程中,就不能獲取巨集對話方塊並從中選擇要執行的巨集。因此,在開發過程的時候,必須採取其它方式對自定義函式進行測試,可以設定呼叫該函式的過程;如果該函式

是用在工作表公式中的,可以在工作表中輸入簡單的公式進行測試。

4、如果在公式中使用了自定義函式,但返回值

"value!"

,表明函式中有錯誤。錯誤的原因可能是**中的邏輯錯誤、可能給函式傳遞了不正確的引數、可能執行了禁用的動作如試圖更改單元格的格式。

5、在自定義函式中使用引數時,可選引數必須在任何必需的引數之後。在引數名稱前加上關鍵字

optional

即可指定乙個可選的引數。

如果必須確定某可選的引數是否傳遞給了某函式,應將該引數宣告為

variant

型別,然後在過程**中使用

ismissing

函式來進行判斷。

要建立包含不定數量引數的自定義函式,使用乙個陣列作為最後乙個

(或惟一的

)引數,並在陣列前面加上關鍵字

paramarray

。關鍵字

paramarray

只能用於引數列表中的最後乙個引數,其資料型別總是

variant

並且是乙個可選的引數。

6、在自定義函式的程式**中,應確保至少有一次把合適的值賦給了函式的名稱。

7、函式的名稱必須遵循一定的規則

(與變數名稱相同

)。最好不要採取與單元格位址相同的形式,並且還要避免使用與

excel

內建函式名稱相同的名稱,否則,

excel

會使用內建函式。

8、如果想將

case

關鍵字和相應的語句放在同一行上,在

case

語名與相應語句間加上分隔符冒號

(:)。

9、通常情況下,

vba中對文字進行比較等操作是區分大小寫的,若將語句

option compare text

新增到模組的頂部,則程式執行時不會區分大小寫。

10、要處理單元格區域,在**中不必先選項中該單元格區域。二1

、編寫自定義函式時,必須在

vba模組中,而不是在與

thisworkbook

、工作表和使用者窗體關聯的**模組中。

2、如果**要選中單元格區域,則該區域所在的工作表必須是活動的,可以使用

activate

方法來啟用某工作表。

3、盡量在

vba**中使用命名的單元格區域。

4、當通過快捷鍵選擇單元格區域的時候,如果用巨集錄製器生成**,則要認真檢查**中是否有對選中的實際單元格錄製硬編碼的引用。

5、如果某個巨集應用於當前單元格區域中的每個單元格,但使用者可能會選中整行或整列,通常,我們不需要遍歷選區中的每個單元格,那麼這個巨集應建立乙個子選區,使其只由非空單元格組成。6、

excel

允許同時有多個選區。

7、若定義了單元格區域的名稱,則在**中使用定義的名稱時,即使在名稱單元格區域中新增或刪除了行或列,也能確保正確使用該單元格區域。8、在

vba**中使用注釋,可以簡要描述編寫的每個過程的目的、對過程所做的任何修改、描述變數的目的等。

通過使用

vbe中"編輯

"工具欄的

"設定注釋塊

/解除注釋塊

",也可以將

vba語句暫時設定成注釋塊,以便於除錯。

9、在工作表中編輯控制項。在拖動控制項的同時按

alt鍵,按鈕將與工作表的網格線對齊;在拖動的同時按

shift

鍵,按鈕成正方形

10、通常,將

物件的enableevents

屬性設定為

false

即可禁止事件發生。但要注意的是,這個屬性只對真正的

excel物件(

如workbooks,worksheets,charts等)

的事件產生作用。

VBA注意事項

以下是專案過程中遇到的坑,可能有些說明的部分不一定嚴謹,僅供參考 1 最好儲存成 xlsm 檔案 2 注意 vba 的引數型別,使用的引數如果未宣告直接使用的話會出現型別不匹配的錯誤 3 寫完後,可以通過 除錯 編譯 vba project 按鈕來檢查 中是否存在一些比較低階的錯誤 4 只有過程 s...

程式設計注意事項

1.動態輸出表頭或資料 每次輸出之前,請先清空表頭以及資料再新增。2.一般資料都要分頁,請直接加上分頁 3.重複性資料的校驗 介面接收資料 1.介面接收資料,一般型別接受 例如 string 列印日誌,之後再轉換成自己想要的格式json等。需求評審 問題一 大面問題 1.是什麼?2.怎樣玩?業務流程...

wxWidgets程式設計注意事項

1.在類中定義物件 wxauimanager m mgr 編譯無法通過,輸出類似錯誤 demo demo.o in function myframe myframe demo.cpp text 0x6491 undefined reference to wxauimanager uninit dem...