可能在錄制宏的時候,我們選擇了錯誤的字體,可能是忘記改變單元格顏色,又或者你臨時發(fā)現(xiàn)最好加上一個步驟。這個時候不必驚慌。Excel是允許你修改代碼的,而不會強迫你重新錄制那些單調的操作。
修改宏代碼的步驟
你必須知道你的宏代碼放在哪里,你才能找到并修改它?;叵肽愦蜷_宏錄制器的時候,你選擇了“當前工作簿”作為存儲地址。最容易找到宏的方法是打開宏對話框,如圖下圖所示。
2、選擇宏名(本例中為WhatsInACell)
3、點擊“編輯”按鈕
Excel 打開一個專門的窗口,叫做VisualBasicEditor(VBE)如下圖所示。利用快捷鍵Alt+F11
可快速地在Excel表格界面和代碼窗口切換。選擇VBE菜單上的關閉選項可以關閉VBA代碼窗口,返
回到電子表格界面。
VBE窗口
代碼窗口暫時看上去有些令人迷惑,不必擔心。只要你開始錄制宏,以及嘗試寫一些代碼,你終將了解所有的組件?,F(xiàn)在,看一下代碼窗口的菜單和工具欄。這兩個工具欄和Excel 窗口的菜單完全不同。代碼窗口的菜單和工具包含一些編程和測試代碼所需要的工具。只要你徹底地學習本書的每一章,你就會成為使用這些工具的專家。
VBE窗口的主要部分是多個窗口的集合界面,這些窗口在你創(chuàng)建和測試VBA過程的時候是及其有用
的。在上圖VBE窗口中顯示了三個集合在一起的窗口:工程窗口,屬性窗口和代碼窗口。工程窗口顯示一個開
啟的模塊文件夾,在這里,模塊1被選中了。Excel 錄制你在工作表里的操作叫做模塊1,模塊2,等等。在本手冊接下來的章節(jié)里,你將利用模塊來編寫你自己的過程代碼。
模塊類似于Word中的一個空白文檔。儲存每個單獨模塊的文件夾稱為“模塊”
技巧:宏還是過程?
宏是通過內置宏錄制器錄制的,或者在VB編輯器里手動輸入的一系列指令或函數(shù)。從Excel 5.0開始,“宏”經常被“過程”這個更廣的概念所代替。盡管這兩個詞可以交替互換使用,但是,許多編程者更喜歡“過程”。雖然宏可以讓你模仿鍵盤操作,真正的過程則還可以執(zhí)行一些不能通過鼠標,鍵盤或者菜單來做的操作。換句話說,過程是一個更復雜的宏,它結合了傳統(tǒng)編程語言的言語結構。
代碼窗口(參見上圖VBE窗口)顯示了下列由宏錄制器錄制的代碼:
Sub WhatsInACell()
'
' WhatsInACell Macro
' Macro recorded 5/31/2002 by Julitta Korol
' Indicates the contents of the underlying cells: text, numbers, formulas.
'
Selection.SpecialCells(xlCellTypeConstants, 2).Select
With Selection.Font
.Name = "Arial"
.FontStyle = "Bold"
.Size = 10
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleNone
.ColorIndex = 13
End With
Range("B6").Select
Selection.SpecialCells(xlCellTypeConstants, 1).Select
With Selection.Font
.Name = "Arial"
.FontStyle = "Regular"
.Size = 10
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleNone
.ColorIndex = 11
End With
Range("C6").Select
Selection.SpecialCells(xlCellTypeFormulas, 23).Select
With Selection.Font
.Name = "Arial"
.FontStyle = "Bold"
.Size = 10
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleNone
.ColorIndex = 3
End With
Range("A1:A3").Select
Selection.EntireRow.Insert
Range("A1").SelectWith Selection.Interior
.ColorIndex = 13
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
End With
Range("B1").Select
ActiveCell.FormulaR1C1 = "Text"
Range("A2").Select
With Selection.Interior
.ColorIndex = 5
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
End With
Range("B2").Select
ActiveCell.FormulaR1C1 = "Numbers"
Range("A3").Select
With Selection.Interior
.ColorIndex = 3
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
End With
Range("B3").Select
ActiveCell.FormulaR1C1 = "Formulas"
Range("B4").Select
End Sub
從現(xiàn)在開始,讓我們注重于尋找下面兩個問題的答案:如何閱讀宏代碼?如何修改宏代碼?
添加注釋
看一下錄制的宏代碼,請注意那些開頭帶單引號的行。這些行就是注釋。注釋默認顯示為綠色。執(zhí)行宏代碼時,VB會忽略這些注釋行。注釋經常和宏代碼放在一起,來整理那些意義不甚明顯的語句。
現(xiàn)在,我們來給宏WhatsInACell 添加注釋。
1、激活VBE窗口
2、在Selection.SpecialCells(xlCellTypeConstants,2).Select前面點擊一下,將光標移至該
語句開頭,回車
3、將光標往上移一行到空白處,并且添加如下注釋,注意前面有單引號(譯者:英文狀態(tài)下的
單引號)
‘ Find and format cells containing text
4、在Selection.SpecialCells(xlCellTypeConstants,1).Select前面點擊一下,將光標移至該語句開頭,回車
5、將光標往上移一行到空白處,并且添加如下注釋,注意前面有單引號(譯者:英文狀態(tài)下的
單引號)
‘ Find and format cells containing numbers
6、在Selection.SpecialCells(xlCellTypeFormulas,23).Select前面點擊一下,將光標移至該
語句開頭,回車
7、將光標往上移一行到空白處,并且添加如下注釋,注意前面有單引號(譯者:英文狀態(tài)下的
單引號)
‘ Find and format cells containing formulas
8、在Range("A1:A3").Select前面點擊一下,將光標移至該語句開頭,回車
技巧:關于注釋
在VBE代碼窗口里,以單引號開頭的都是注釋。注釋的默認顏色是綠色??梢酝ㄟ^“選項”對話框(“工具”-“選項”-“編輯器格式”)更改注釋顏色。注釋也可以寫在代碼的后面。
例如,在語句.ColorIndex = 11之后添加注釋。點擊該語句句末,按下Tab鍵,輸入單引號,然后輸入注釋。
顯示如下:
.ColorIndex = 11 ' Sets the font color to Violet
注釋除了給用戶提供代碼目的信息之外,沒有任何作用。請別忘記給你的代碼寫上注釋。如果你幾個月后還要回到你的代碼,那么注釋將幫你大忙。同樣,注釋可以使別人很快理解你的程序。
9、將光標往上移一行到空白處,并且添加如下注釋,注意前面有單引號(譯者:英文狀態(tài)下的
單引號)
‘Create legend
更多建議: