完善Excel宏代碼的步驟及技巧

2018-10-21 09:51 更新
錄制宏后,你可能會發(fā)現(xiàn)宏可以進行一些別的操作。如果你已經(jīng)熟悉了VB語言,要往宏里面加指令并不是一件困難的事情。然而,在絕大多數(shù)情況下,你可以將這些工作交給Excel宏錄制器,從而更有效地完成這項工作。你也許會說,Excel錄制了太多的不需要的指令。但是,肯定的是,宏錄制器不會犯錯,你完全可以依賴于它。


如果你想要通過宏錄制器在你的代碼里添加指令,那么你必須錄制一個新宏,然后復(fù)制需要的部分再粘貼到原來代碼的正確位置。


我們來給A1:B3添加粗邊框:


VB編輯器

如果你從VB編輯器運行宏時,想觀察宏的運行情況,你必須將Excel界面和VB編輯器并排地布置在一起


1、激活圖1-6看到的Excel界面


2、選擇“工具”-“宏”-“錄制新宏”


3、在宏對話框點擊確定,接受默認的宏名并開始錄制


4、選擇區(qū)域A1:B3


5、選擇“格式”-“單元格”,點擊“邊框”頁


6、在“邊框樣式”部分,點擊“外部”按鈕


7、在邊框粗細列表,點擊最粗的,再點擊確定關(guān)閉對話框


8、點擊單元格A1。注意,A1:B3區(qū)域有了粗邊框。


9、點擊“停止錄制”按鈕,或者選擇“工具”-“宏”-“停止錄制”


切換置VB編輯器窗口,查看你錄制的宏。給A1:B3(譯者:原文為A1:A3)添加粗邊框的代碼如下:


Sub Macro2()

'
' Macro2 Macro
' Macro recorded 5/31/2002 by Julitta Korol
'
'
          Range("A1:B3").Select
          Selection.Borders(xlDiagonalDown).LineStyle = xlNone
          Selection.Borders(xlDiagonalUp).LineStyle = xlNone
          With Selection.Borders(xlEdgeLeft)
                    .LineStyle = xlContinuous
                    .Weight = xlThick
                    .ColorIndex = xlAutomatic
          End With
          With Selection.Borders(xlEdgeTop)                    
                    .LineStyle = xlContinuous
                    .Weight = xlThick
                    .ColorIndex = xlAutomatic
          End With
          With Selection.Borders(xlEdgeBottom)
                    .LineStyle = xlContinuous
                    .Weight = xlThick
                    .ColorIndex = xlAutomatic
          End With
          With Selection.Borders(xlEdgeRight)
                    .LineStyle = xlContinuous
                    .Weight = xlThick
                    .ColorIndex = xlAutomatic
          End With
          Selection.Borders(xlInsideVertical).LineStyle = xlNone
          Selection.Borders(xlInsideHorizontal).LineStyle = xlNone
          Range("A1").Select
End Sub


現(xiàn)在,我們來分析一下這些錄制的代碼。你認為你可以去掉其中的一些指令嗎?在你刪除這些不必要的代碼之前,考慮使用注釋。在你刪除任何代碼之前,請將它們注釋掉,然后運行宏。如果VB沒有出現(xiàn)任何錯誤信息,那么你就可以安全地刪除這些被注釋了的代碼。如果每次都按照這個指導(dǎo)思想,你就不會重復(fù)錄制相同的操作了如果這個宏命令沒有正確地運行,那么你需要去掉剛才的注釋,畢竟,這些代碼可能是必須的。


當你使用宏錄制器來創(chuàng)建宏的時候,你可以很快地掌握Excel菜單選項和對話框設(shè)置在VBA里的等同方法。然后,你可以在在線幫助里面查找這些VB指令的意思和用法。很顯然,VB要執(zhí)行越多的指令,宏運行的速度就越慢。去掉那些無關(guān)緊要的命令會加速宏的運行。然而,為了使你的代碼容易理解,你需要戴上你的偵探帽子,尋求最佳途徑。


例如,看一下你錄制的給選中的單元格加外框的宏???/span>上去,宏錄制器是在分別地給每一條線進行設(shè)置。VB沒有一個簡單的一句命令來給選中的區(qū)域加外邊框,這似乎很難理解。學(xué)習(xí)任何語言中正確的詞語和表達是很費時的。時間一長,你會發(fā)現(xiàn)VB實際上有一個另外的方法BorderAround讓你在單元格區(qū)域添加邊框和設(shè)置顏色,線型和新邊框的粗細。


下面的語句是VBA中給選中的單元格設(shè)置外圍粗邊框的最佳方法:

Range("A1:B3").BorderAround Weight:=xlThick
26
  
上面的指令使用Range對象的BorderAround方法。它給A1:B3區(qū)域添加了一個粗線外框。(下一章涵蓋了VB對象,屬性和方法)。


現(xiàn)在我們將上面的指令加到宏WhatsInACell里面去:


1、激活含有宏WhatsInACell的代碼窗口


2、在ActiveCell.FormulaR1C1 = "Formulas"之后插入一行


3、在空白行加入以下指令:

Range("A1:B3").BorderAround Weight:=xlThick 4


4、光標放在宏代碼的任何位置,按F5運行修改好的代碼。


技巧:附加指令

要在現(xiàn)存的代碼中添加指令的話,通過在需要的位置按回車鍵加入空白行,并且輸入必要的VB語句。如果附加指令是鍵盤操作或菜單命令的話,你可以使用宏錄制器來創(chuàng)建必要的代碼,然后將它們復(fù)制粘貼到原來的宏里面。


假設(shè)你想要VB在執(zhí)行完最后一行代碼時給你提示,這種操作是不可能被錄制下來的,因為Excel沒有相應(yīng)的菜單選項。但是,你可以手動使用VB語言在你的代碼里面添加指令。


1、在代碼窗口下,在End Sub前回車


2、光標放在空白行,輸入下列語句:

MsgBox "所有操作都已完成。"(譯者:英文狀態(tài)下的引號。)


3、確保光標在代碼里,按下F5


4、VB執(zhí)行完最后一個指令后,彈出這個信息。點擊確定。你現(xiàn)在知道宏已經(jīng)運行完成。

MsgBox是用得非常頻繁的VBA函數(shù)之一,你將在后面的章節(jié)中學(xué)習(xí)它的使用。


重新命名宏

在代碼里面添加了一些代碼后,為了更好地反映這個宏的目的,你需要將其改名。過程的名稱應(yīng)該越接近它的功能越好。你不需要按任何鍵就可以更改宏名。在代碼窗口,你將關(guān)鍵詞Sub后面老的宏名清除,并且打入新的名稱即可。
以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號