VBA中Excel宏的介紹及應(yīng)用
Excel中的宏(Macro)是什么
在Excel的“視圖”標(biāo)簽頁下,有一個(gè)宏的功能,示例如下圖:
宏其實(shí)是一段可以重復(fù)執(zhí)行的代碼,對(duì)應(yīng)上圖的兩個(gè)選項(xiàng):
- 查看宏:查看已經(jīng)存在的宏的代碼段,并且可以執(zhí)行
- 錄制宏: Excel提供了可以像錄制聲音那樣錄制宏的代碼段,點(diǎn)擊“錄制宏”之后,接下來對(duì)Excel的操作會(huì)自動(dòng)轉(zhuǎn)換為代碼。
宏的來歷
既然宏是可以重復(fù)執(zhí)行的代碼段,那宏是什么語言的代碼呢?答案是VBA, 那VBA是什么語言呢? 這就要從BASIC語言說起了。
BASIC是一門很古老的計(jì)算機(jī)語言,發(fā)表于1964年。BASIC代碼通過BASIC解釋器翻譯為計(jì)算機(jī)能識(shí)別的機(jī)器指令。
微軟的DOS、Windows 3、Windows 9系列預(yù)裝了BASIC解釋器(稱為:QBasic),所以可以直接寫B(tài)asic程序;但從Windows 2000開始,就不再預(yù)裝BASIC解釋器了。
微軟基于Windows 圖形界面開發(fā)了新的Visual Basic語言,并提供了可視化的便捷開發(fā)工具Visual Basic IDE。不過是需要收費(fèi)的。
1996年,微軟開發(fā)Visual Basic Scripting Editing(即VBScript),類似快速書寫批處理腳本,語法和VB保持一致。VBScript在操作系統(tǒng)內(nèi)置。
VBA: Visual Basic for Applications 。微軟在Office系列產(chǎn)品中集成了VBScript解釋器,這個(gè)VBScript就是VBA。除了解釋器,還有集成開發(fā)環(huán)境,一個(gè)簡化版的Visual Basic IDE。
所以, 宏屬于VB語言系列,但是屬于腳本語言, 也就是不需要編譯為exe文件,可以由解釋器直接解釋運(yùn)行,宏的代碼示例:
Sub 宏1() ' ' 宏1 宏 ' ' Cells.Select Range("G22").Activate Selection.Copy Sheets("Sheet1").Select Cells.Select Range("F26").Activate ActiveSheet.Paste End Sub
- Sub 是VB語言的過程, 相當(dāng)于函數(shù)的概念
- 單引號(hào) ’ 用來添加注釋,屬于VB的語法
- Cells、Sheets、ActiveSheet 是VBA的對(duì)象
集成在Excel 中的開發(fā)IDE如下:
宏能干什么?
宏是一段腳本代碼,能夠幫助我們進(jìn)行重復(fù)、繁雜的動(dòng)作。最重要的是宏的編寫或錄制很簡單,沒有編程經(jīng)驗(yàn)或是沒有VBA語言的基礎(chǔ)也可以實(shí)現(xiàn)簡單的宏。宏一般是用來處理復(fù)雜的Excel,也就是內(nèi)容較多或是格式等較為復(fù)雜。宏可以用來:
- 對(duì)Excel文件、工作表(Sheet)等進(jìn)行操作,可以像界面操作一樣復(fù)制、刪除、移動(dòng)
- 對(duì)單元格(Cell)進(jìn)行操作,包括設(shè)置值、獲取Comment等
- 可以將Excel中的數(shù)據(jù)輸出到文件中
- …
典型應(yīng)用包括:
- 收集不同Excel中的工作表統(tǒng)一到一份Excel中,自動(dòng)產(chǎn)生報(bào)表
- 在系統(tǒng)開發(fā)時(shí),用來收集初始數(shù)據(jù)或是增量的Admin數(shù)據(jù)
- 。。。
宏的錄制
接下來以一個(gè)復(fù)制工作表的實(shí)例演示宏的錄制。
視圖>宏>錄制宏
切到Sheet2,在界面上Ctrl+A選中Sheet2的所有Cell, 鍵盤Ctrl+C
切到Sheet1,Ctrl+A選中Sheet1的所有Cell,鍵盤Ctrl+V
點(diǎn)擊“停止錄制”,保存宏
以上宏的錄制就完成了, 通過查看宏,
點(diǎn)擊“執(zhí)行”就可以重復(fù)剛剛錄制的動(dòng)作了
點(diǎn)擊“編輯”就可以打開IDE并看到錄制的宏的代碼。如果有VB的編程基礎(chǔ),基礎(chǔ)VBA的API就可以進(jìn)行宏的編程了。
宏的保存
宏的代碼段是保存在Excel文件中,在老版本的Excel中需要開啟允許宏的設(shè)置, 新版本的Excel則需要保存后綴名是 .xlsm 的文件。如下圖:
如果不保存.xlsm 類型,則會(huì)報(bào)如下提示,而且保存之后宏也可能丟失。
到此這篇關(guān)于VBA中Excel宏的介紹及應(yīng)用的文章就介紹到這了,更多相關(guān)VBA Excel宏內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- Excel·VBA合并工作簿的實(shí)現(xiàn)示例
- Excel?VBA指定條件刪除整行整列的實(shí)現(xiàn)
- Excel?VBA按列拆分工作表和工作簿的實(shí)現(xiàn)
- vba將excel按照某一列拆分成多個(gè)文件
- python調(diào)用excel_vba的兩種實(shí)現(xiàn)方式
- 基于python requests selenium爬取excel vba過程解析
- VBA將excel數(shù)據(jù)表生成JSON文件
- VBA中操作Excel常用方法總結(jié)
- Excel VBA連接并操作Oracle
- excel vba 高亮顯示當(dāng)前行代碼
- excel vba 限制工作表的滾動(dòng)區(qū)域代碼
相關(guān)文章
關(guān)于vba代碼運(yùn)行時(shí)錯(cuò)誤1004?應(yīng)用程序定義或?qū)ο蠖x錯(cuò)誤問題
這篇文章主要介紹了vba代碼運(yùn)行時(shí)錯(cuò)誤1004?應(yīng)用程序定義或?qū)ο蠖x錯(cuò)誤,經(jīng)過一系列問題調(diào)查發(fā)現(xiàn)是工作表中數(shù)據(jù)存在異常,需要的朋友可以參考下2022-10-10VBA數(shù)組去重(字典去重多種方法+數(shù)組去重2種方法)
本文主要介紹了VBA數(shù)組去重(字典去重多種方法+數(shù)組去重2種方法),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-08-08Excel·VBA合并工作簿的實(shí)現(xiàn)示例
本文主要介紹了Excel·VBA合并工作簿的實(shí)現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-01-01Excel?VBA按列拆分工作表和工作簿的實(shí)現(xiàn)
表格拆分是常見的數(shù)據(jù)處理,本文主要介紹了Excel?VBA按列拆分工作表和工作簿的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-01-01excel vba 限制工作表的滾動(dòng)區(qū)域代碼
如果希望限制工作表中滾動(dòng)的區(qū)域,可以通過設(shè)置WorkSheet對(duì)象的ScrollArea屬性來實(shí)現(xiàn)。2009-07-07