如果將要使用錄制的宏,需要了解絕對錄制和相對錄制的概念。通常來講,當錄制一條宏時,Excel存儲的是所選單元格的準確引用(即執行結X1錄制)。例如,在錄制宏時,如果您選擇了區域B1:B10,Excel會把該選區錄制為:
Range("B1:B10").Select
該語句確切的意思是說:“選擇區域B1到B10內的單元格。”當調用包含該語句的宏時,同樣的單元格總是被選中,而不論活動單元格位于哪個位置。
需注意的是功能區的“開發工具”——“代碼”部分有一個名為“使用相對引用”的控件。當單擊該控件時, Excel會將其錄制模式從絕對(默認)改為相對。當以相對模式進行錄制時,所選的單元格區域就會依據活動單元格的位置被解釋為不同的含義。例如,如果以相對模式進行錄制,且單元格A1是活動的,選擇區域B1:B10將生成下列語句:
ActiveCell.offset(0,1).Range(“A10:A10”).Select
該語句可以被解釋為:“從活動單元格開始,下移0行,右移1列,然后把這個新的單元格作為A1?,F在選擇A1 到A10”換言之,一個以相對模式錄制的宏從活動單元格出發,以它的位置為基準,然后保存對該單元格的相對引用。因此依據活動單元格的位置,會獲得不同的結果。當重播該宏時,選中的單元格取決于活動單元格。該宏選擇的區域為10行*1列,以活動單元格為基準,偏移量為0行和1列。
當Excel以相對模式錄制宏時,“使用相對引用”控件顯示為下凹的樣子。要返回絕對錄制,再次單擊“使用相對引用”控件(該控件顯示為普通狀態,沒有下凹)。