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