Excel VBA宏
一、宏與VBA
什么是宏與VBA
-
VBA(Visual Basic for Applications)是[Visual Basic](https://baike.baidu.com/item/Visual Basic)的一種宏語(yǔ)言,是在其桌面應(yīng)用程序中執(zhí)行通用的自動(dòng)化(OLE)任務(wù)的編程語(yǔ)言。主要能用來(lái)擴(kuò)展Windows的應(yīng)用程序功能,特別是[Microsoft Office](https://baike.baidu.com/item/Microsoft Office)軟件。它也可說(shuō)是一種應(yīng)用程式視覺(jué)化的 Basic 腳本。
-
宏在計(jì)算機(jī)科學(xué)里是一種抽象(Abstraction),它根據(jù)一系列預(yù)定義的規(guī)則替換一定的文本模式。解釋器或編譯器在遇到宏時(shí)會(huì)自動(dòng)進(jìn)行這一模式替換。對(duì)于編譯語(yǔ)言,宏展開(kāi)在編譯時(shí)發(fā)生,進(jìn)行宏展開(kāi)的工具常被稱(chēng)為宏展開(kāi)器。
宏這一術(shù)語(yǔ)也常常被用于許多類(lèi)似的環(huán)境中,它們是源自宏展開(kāi)的概念,這包括鍵盤(pán)宏和宏語(yǔ)言。絕大多數(shù)情況下,“宏”這個(gè)詞的使用暗示著將小命令或動(dòng)作轉(zhuǎn)化為一系列指令。
-
在這里,我們通過(guò)VBA編寫(xiě)的一系列列指令組成的程序,稱(chēng)之為宏。通過(guò)學(xué)習(xí)VBA編寫(xiě)宏,有利于我們高效完成重復(fù)性的數(shù)據(jù)任務(wù)。
二、錄制第一個(gè)宏
1、環(huán)境準(zhǔn)備:
1.打開(kāi)Excel,進(jìn)入開(kāi)始頁(yè)面,點(diǎn)擊選項(xiàng)
2.在選項(xiàng)里面啟用開(kāi)發(fā)者工具選項(xiàng)
3.在Excel最上邊一欄中就出現(xiàn)了開(kāi)發(fā)者工具,里面就有宏
2、開(kāi)始錄制第一個(gè)宏
1.源數(shù)據(jù)準(zhǔn)備,準(zhǔn)備兩份相同的數(shù)據(jù)方便后面檢驗(yàn)宏的效果,在Sheet2里準(zhǔn)備和Sheet1相同的數(shù)據(jù)。
| 華中 | 湖南省 | 4124578 | 2219791 | 2312553 | 2733342 | 2077356 | 1622397 |
| 華中 | 湖北省 | 3836901 | 2724075 | 822557 | 3696787 | 1949455 | 3271464 |
| 華中 | 安徽省 | 734152 | 2043402 | 1873927 | 2623462 | 2442073 | 678309 |
| 華中 | 江西省 | 652988 | 719675 | 758785 | 2298703 | 629380 | 359503 |
| 華南 | 福建省 | 2402120 | 859073 | 2222589 | 2482702 | 1372642 | 4364248 |
| 華南 | 廣東省 | 1192215 | 4386766 | 948114 | 3399607 | 4488676 | 2834708 |
| 華南 | 海南省 | 2390163 | 3669796 | 1337083 | 4198628 | 1924993 | 3153451 |
| 華東 | 上海市 | 3771948 | 3611844 | 899594 | 1452958 | 3036240 | 1405649 |
| 華東 | 浙江省 | 2124820 | 4915076 | 2362902 | 1829293 | 1727879 | 2422167 |
| 華東 | 山東省 | 3592079 | 4491830 | 226058 | 1123985 | 4655060 | 4122184 |
| 華東 | 江蘇省 | 4206888 | 2106160 | 1580212 | 3051050 | 440935 | 1229652 |
| 華北 | 北京市 | 4513520 | 2510656 | 2930520 | 3385216 | 2517223 | 4488737 |
| 華北 | 河北省 | 2953720 | 212384 | 2151415 | 2084952 | 869312 | 395011 |
| 華北 | 天津市 | 1368565 | 657230 | 3501192 | 746629 | 2380856 | 1161643 |
2.然后點(diǎn)擊 “開(kāi)始錄制宏”
在這里插入圖片描述
確定后宏錄制就已經(jīng)開(kāi)始
4.宏操作
1)對(duì)這個(gè)表格的第一行進(jìn)行底色和字體顏色的處理
選中之后在開(kāi)始里面選擇填充顏色和字體顏色
2)在表格中間隨便選擇一格數(shù)據(jù) Ctrl+A 選擇全體數(shù)據(jù)進(jìn)行居中處理
3)準(zhǔn)備的數(shù)據(jù)里面的數(shù)字是銷(xiāo)售額,所以我們選擇這里的數(shù)字格式設(shè)置為貨幣格式,調(diào)整小數(shù)點(diǎn)后面的數(shù)字的個(gè)數(shù),減少,只要整數(shù)
設(shè)置完成后的效果圖
5.停止錄制,至此,宏已經(jīng)錄制完畢
6.然后可以用我們自己定義好的快捷鍵Ctrl+Shift+A啟用宏,檢驗(yàn)宏的效果
3、查看宏背后的VBA代碼
單擊Visual Basic查看VBA窗口,這個(gè)窗口是編寫(xiě)VBA代碼的一個(gè)環(huán)境
提示:
如果看不見(jiàn)代碼文件的列表就單擊視圖,選擇工程資源管理器即可。
列表里面有兩項(xiàng),一個(gè)是Excel對(duì)象,一個(gè)是模塊
雙擊模塊1就可以看見(jiàn)代碼窗口,就是我們剛才錄制的宏的代碼
4、怎么保存帶有宏程序的Excel
為了保證Excel的安全性,防止有VBA病毒植入,所以保存的時(shí)候要另存為 xlsm格式
再次打開(kāi)我們保存的帶有宏程序的文件
啟用即可
5、宏文件的安全設(shè)置
Excel 開(kāi)始 --> 選項(xiàng) --> 信任中心
在受信任位置處選擇添加新位置,將我們平時(shí)存放學(xué)習(xí)宏的文件夾添加進(jìn)去。這樣再打開(kāi)的時(shí)候就不會(huì)有啟用提示了。
三、使用相對(duì)引用錄制宏
1、宏功能說(shuō)明:
? 隔行變色
2、先錄制一個(gè)普通的宏
步驟:
1.選中一行
2.填充顏色
3.隔一行選擇
在Sheet2里測(cè)試宏,確定生效。
但是再次執(zhí)行的時(shí)候不會(huì)有新的變化,就是只能實(shí)現(xiàn)變色一次,這是為什么?
3、查看VBA代碼
4、使用相對(duì)引用錄制宏
還是先錄制宏,給宏命名之后在開(kāi)始操作前單擊 使用相對(duì)引用
宏規(guī)則和步驟如上所示,錄制完成后在Sheet4使用,發(fā)現(xiàn)可以隔行變色的功能可以重復(fù)實(shí)現(xiàn)。
5、查看兩個(gè)宏的VBA代碼
6、通過(guò)表單控件運(yùn)行宏
在開(kāi)發(fā)者工具里面選擇
插入 --> 表單控件 --> 在空白處點(diǎn)擊 --> 關(guān)聯(lián)要使用的宏
按我們使用宏的規(guī)則,點(diǎn)擊按鈕就可以看到使用效果
注意:
宏的使用是不可撤銷(xiāo)的,所以對(duì)宏的操作一定要慎重
按鈕的移動(dòng)是鼠標(biāo)右鍵選中移動(dòng)
7、快速訪問(wèn)工具欄運(yùn)行宏
在Excel選項(xiàng)里面點(diǎn)擊快速訪問(wèn)欄
選中我們要的宏添加到 自定義快速訪問(wèn)工具欄
還可以修改宏在自定義快速訪問(wèn)工具欄里的圖標(biāo)
使用宏的時(shí)候在這里點(diǎn)擊即可
8、保存宏到個(gè)人工作簿
保存到個(gè)人工作簿里的宏在全局都可見(jiàn)。
因?yàn)橐胗卯?dāng)前工作簿中的宏的時(shí)候需要把這個(gè)宏文件打開(kāi),這樣才可以在其他文件中使用。定義到個(gè)人工作簿中的宏則不受這個(gè)限制。
操作方式:
錄制宏的時(shí)候保存在選擇為個(gè)人工作簿
剩下的過(guò)程如上所示,用隔行變色的功能即可
確定宏可用之后檢查宏
可以看見(jiàn)和以前的宏不同的是出現(xiàn)了PERSONAL.XLSB這樣的新格式
在當(dāng)前Excel的視圖里點(diǎn)擊取消隱藏,就可以看見(jiàn)這個(gè)文件,它默認(rèn)是隱藏的。
我們的保存在個(gè)人工作簿中的宏程序就是保存在PERSONAL.XLSB這個(gè)文件中的。
我們?cè)俅蜷_(kāi)其他的Excel文檔,找到宏,查看就可以發(fā)現(xiàn)隔行變色這個(gè)宏
總結(jié)
以上是生活随笔為你收集整理的Excel VBA宏的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 文字转换为音频mp3的方法
- 下一篇: 封装(私有化成员变量,获取变量值)