有沒有想過?許多事情現(xiàn)在躍躍欲試,但就是不知道該用什么代碼,這該死的代碼。
別急,今晚,我們就來解決這一問題。
宏是什么東西?
Excel工具菜單下有個(gè)“宏”,這宏是什么東西?宏是一段代碼。我們點(diǎn)擊一個(gè)按鈕運(yùn)行一段代碼,這一段代碼就是一個(gè)宏。
菜單:工具-宏中有個(gè)“錄制新宏”,這又是什么意思?
錄制新宏就是把我們對Excel的鍵盤和鼠標(biāo)操作記錄為代碼。
沒有發(fā)愣吧?這東西好哩!
[此貼子已經(jīng)被作者于2008-3-2 22:26:39編輯過]
我們就來試一試這“錄制新宏”。
做點(diǎn)什么?把當(dāng)前工作表隱藏了,看錄制的宏是什么東西。
說做就做:
①點(diǎn)擊工具-宏-錄制新宏:
這時(shí),會(huì)顯示工具“停止錄制”,有兩個(gè)按鈕,一個(gè)是停止錄制,點(diǎn)擊它即停止錄制宏。另一個(gè)是“相對引用”,如果對單元格進(jìn)行操作,選擇或取消“相對引用”,錄制出的代碼是不一樣的,你可另找時(shí)間研究它。
②操作:格式-工作表-隱藏。
“錄制新宏”的工作結(jié)束了,按Alt+F11打開VBE窗口:
系統(tǒng)自動(dòng)增加一個(gè)模塊“模塊1”,剛才錄制的宏就在這模塊1下,如果看不到代碼,雙擊“模塊1”就是。
Sub Macro1()和End Sub是宏的開始行和結(jié)束行。Macro1是宏的名稱。
綠色字體部分是注釋,如果不喜歡,可以刪掉它。
余下的只有一行:ActiveWindow.SelectedSheets.Visible = False
這時(shí),我們該怎么做?
按F1,查幫助。用查戶口的方式弄清每一個(gè)詞的意義。
ActiveWindow:當(dāng)前窗口。
SelectedSheets:選定的工作表。
Visible:決定對象是否可見。
我們操作的對象是ActiveWindow.SelectedSheets,即當(dāng)前窗口中的選定的工作表。
看出點(diǎn)名堂來沒有?
如果不用“ActiveWindow.SelectedSheets”這種方式來指定工作表,還能怎樣?回想一下,Sheets(工作表名),還記得嗎?我們能用代碼隱藏指定的工作表(如sheet2)嗎?能:
Sheets("Sheet2").Visible = False
當(dāng)Visible = False時(shí),表示隱藏,不可見,怎樣表示可見呢?取值等于False相反的邏輯值是True:
Sheets("Sheet2").Visible = True
可以用我們已經(jīng)熟悉的方式,把代碼寫在按鈕的Click()過程中,點(diǎn)擊按鈕運(yùn)行它。
[attach]169461[/attach]
小結(jié):本來我們不知道有Visible這么一個(gè)屬性,因?yàn)樾枰?,我們可以通過錄制宏的辦法記錄對Excel的操作,再對宏代碼進(jìn)行分析,找到我們需要的代碼并加以運(yùn)用。掌握了錄制宏這一技巧,是不是受用無窮呢?
練習(xí)1:編寫代碼,把工作表sheet3更名為“我的工作表”。
練習(xí)2:編寫代碼,取消當(dāng)前窗口中的滾動(dòng)條(提示:菜單:工具-選項(xiàng)-視圖)。
練習(xí)還順暢嗎?
工作表具有Visible屬性,改變它的值,即是隱藏或顯示指定的工作表。
其它對象是否有這屬性?打開下面的附件看看:
你一定已經(jīng)知道,錄制的宏可以直接運(yùn)行。運(yùn)行宏的辦法有多種:
①打開“工具-宏-宏”窗口,選擇要運(yùn)行的宏,點(diǎn)擊按鈕“運(yùn)行”。
錄制宏注意事項(xiàng)。
錄制宏主要有兩個(gè)目的。一是為了運(yùn)用,如,當(dāng)前工作表從第1行開始,每7行刪除1行,我們可以錄制一段宏,操作步驟是:
①將光標(biāo)定位到要?jiǎng)h除的第一行;
②開始錄制(設(shè)置快捷鍵Ctrl+X、選擇“相對引用”),完成兩個(gè)動(dòng)作:
⑴刪除整行;
⑵光標(biāo)下移6行到要?jiǎng)h除的第2行,即第原來的第8行(最好用鼠標(biāo),可與鍵盤操作比較一下代碼);
③停止錄制。
[attach]169529[/attach]
利用這個(gè)實(shí)例,可對比領(lǐng)會(huì)一下“相對引用”的作用。
第二個(gè)目的,就是獲取代碼,我們不知道對象的屬性、方法,通過錄制宏來獲取,再用到自己的代碼中。
無論哪個(gè)目的,都要注意,不要進(jìn)行不必要的操作,代碼太多,不利于修改。如果獲取代碼為目的,錄制過程更要簡潔些,一次錄制的動(dòng)作越少越好,分析的時(shí)候才不容易出差錯(cuò)。
學(xué)生愚笨,請老師指點(diǎn):錄制后結(jié)果不同,錯(cuò)在哪?
第一步,定位第一行,不是選擇第一行,用鼠標(biāo)點(diǎn)擊第一行的某一單元格,如A1。
開始錄制后,第一步是選擇第一行(你原來錄制前的操作)。
2006-8-14 15:34
在VBA入門之二《一夜暴富》7中提到:利用這個(gè)實(shí)例,可對比領(lǐng)會(huì)一下“相對引用”的作用
可是我用了兩種方法做了以后,怎么感覺是一樣的啊,能不能請山老師具體解釋下兩個(gè)的區(qū)別,謝謝~
不能憑感覺,要用事實(shí)說話。
兩種模式下錄制宏,再分別運(yùn)行它(多運(yùn)行幾次),看工作表變化。
ZUXuEb4B.rar (7.46 KB
聯(lián)系客服