EXCEL VBA編程常用代碼_第1頁(yè)
EXCEL VBA編程常用代碼_第2頁(yè)
EXCEL VBA編程常用代碼_第3頁(yè)
EXCEL VBA編程常用代碼_第4頁(yè)
已閱讀5頁(yè),還剩30頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、EXCEL VBA編程常用代碼Excel VBA編程常用代碼時(shí)間:2021-12-0522:36:04來(lái)源:本站作者:未知我要投稿我要收藏投稿指南用過(guò)VB的人都應(yīng)該知道如何聲明變量,在VBA中聲明變量和VB中是完全一樣的!使用Dim語(yǔ)句Dim a as integer聲明a為整型變量Dim a聲明a為變體變量Dim a as string聲明a為字符串變量Dim a as currency,b as currency,c as currency聲明a,b,c為貨幣變量.聲明變量可以是:Byte、Boolean、Integer、Long、Currency、Single、Double、Decima

2、l(當(dāng)前不支持)、Date、String(只限變長(zhǎng)字符串)、String*length (定長(zhǎng)字符串)、Object、Variant、用戶定義類型或?qū)ο箢愋?。?qiáng)制聲明變量Option Explicit說(shuō)明:該語(yǔ)句必在任何過(guò)程之前出現(xiàn)在模塊中。聲明常數(shù)用來(lái)代替文字值。Const常數(shù)的默認(rèn)狀態(tài)是Private。Const My=456聲明Public常數(shù)。Public Const MyString=HELP聲明Private Integer常數(shù)。Private Const MyInt As Integer=5在同一行里聲明多個(gè)常數(shù)。Const MyStr=Hello,MyDouble As Dou

3、ble=3.4567選擇當(dāng)前單元格所在區(qū)域在EXCEL97中,有一個(gè)十分好的功能,他就是把鼠標(biāo)放置在一個(gè)有效數(shù)據(jù)單元格中,執(zhí)行該段代碼,你就可以將連在一起的一片數(shù)據(jù)全部選中。只要將該段代碼加入到你的模塊中。Sub My_SelectSelection.CurrentRegion.SelectEnd sub返回當(dāng)前單元格中數(shù)據(jù)刪除前后空格后的值sub my_trimmsgbox Trim(ActiveCell.Value)end sub單元格位移sub my_offsetActiveCell.Offset(0,1).Select當(dāng)前單元格向左移動(dòng)一格ActiveCell.Offset(0,-1)

4、.Select當(dāng)前單元格向右移動(dòng)一格ActiveCell.Offset(1,0).Select當(dāng)前單元格向下移動(dòng)一格ActiveCell.Offset(-1,0).Select當(dāng)前單元格向上移動(dòng)一格end sub如果上述程序產(chǎn)生錯(cuò)誤那是因?yàn)閱卧癫荒芤苿?dòng),為了解除上述錯(cuò)誤,我們可以往sub my_offset之下加一段代碼on error resume next注意以下代碼都不再添加sub“代碼名稱”和end sub請(qǐng)自己添加!給當(dāng)前單元格賦值A(chǔ)ctiveCell.Value=你好!給指定單元格賦值例如:?jiǎn)卧駜?nèi)容設(shè)為Range(a1).value=hello又如:你現(xiàn)在的工作簿在sheet1

5、上,你要往sheet2的單元格中插入1.sheets(sheet2).selectrange(a1).value=hello或2.Sheets(sheet1).Range(a1).Value=hello說(shuō)明:1.sheet2被選中,然后在將“HELLO賦到A1單元格中。2.sheet2不必被選中,即可“HELLO賦到sheet2的A1單元格中。隱藏工作表隱藏SHEET1這張工作表sheets(sheet1).Visible=False顯示SHEET1這張工作表sheets(sheet1).Visible=True打印預(yù)覽有時(shí)候我們想把所有的EXCEL中的SHEET都打印預(yù)覽,請(qǐng)使用該段代碼,它

6、將在你現(xiàn)有的工作簿中循環(huán),直到最后一個(gè)工作簿結(jié)束循環(huán)預(yù)覽。Dim my As WorksheetFor Each my In Worksheetsmy.PrintPreviewNext my得到當(dāng)前單元格的地址msgbox ActiveCell.Address得到當(dāng)前日期及時(shí)間msgbox date&chr(13)&time保護(hù)工作簿ActiveSheet.Protect取消保護(hù)工作簿ActiveSheet.Unprotect給活動(dòng)工作表改名為liu/doc/a8fbbfe774eeaeaad1f34693daef5ef7ba0d126b.html

7、=liu打開(kāi)一個(gè)應(yīng)用程序AppActivate(Shell(C:WINDOWSCALC.EXE)增加一個(gè)工作表Worksheets.Add刪除活動(dòng)工作表activesheet.delete打開(kāi)一個(gè)工作簿文件Workbooks.Open FileName:=C:My DocumentsBook2.xls關(guān)閉活動(dòng)窗口ActiveWindow.Close單元格格式選定單元格左對(duì)齊Selection.HorizontalAlignment=xlLeft選定單元格居中Selection.HorizontalAlignment=xlCenter選定單元格右對(duì)齊Selection.HorizontalAli

8、gnment=xlRight選定單元格為百分號(hào)風(fēng)格Selection.Style=Percent選定單元格字體為粗體Selection.Font.Bold=True選定單元格字體為斜體Selection.Font.Italic=True選定單元格字體為宋體20號(hào)字With Selection.Font.Name=宋體.Size=20End WithWith語(yǔ)句With對(duì)象.描述End With清除單元格ActiveCell.Clear刪除所有文字、批注、格式返回選定區(qū)域的行數(shù)MsgBox Selection.Rows.Count返回選定區(qū)域的列數(shù)MsgBox Selection.Columns

9、.Count返回選定區(qū)域的地址Selection.Address忽略所有的錯(cuò)誤ON ERROR RESUME NEXT遇錯(cuò)跳轉(zhuǎn)on error goto err_handle中間的其他代碼err_handle:標(biāo)簽跳轉(zhuǎn)后的代碼刪除一個(gè)文件killc:1.txt定制自己的狀態(tài)欄Application.StatusBar=現(xiàn)在時(shí)刻:&Time恢復(fù)自己的狀態(tài)欄Application.StatusBar=false用代碼執(zhí)行一個(gè)宏Application.Run macro:=text滾動(dòng)窗口到a1的位置ActiveWindow.ScrollRow=1ActiveWindow.ScrollColumn=

10、1定制系統(tǒng)日期Dim MyDate,MyDayMyDate=#12/12/69#MyDay=Day(MyDate)返回當(dāng)天的時(shí)間Dim MyDate,MyYearMyDate=DateMyYear=Year(MyDate)MsgBox MyYearinputboxXX=InputBox(Enter number of months to add)得到一個(gè)文件名Dim kk As Stringkk=Application.GetOpenFilename(EXCEL(*.XLS),*.XLS,Title:=提示:請(qǐng)打開(kāi)一個(gè)EXCEL文件:)msgbox kk打開(kāi)zoom對(duì)話框Application

11、.Dialogs(xlDialogZoom).Show激活字體對(duì)話框Application.Dialogs(xlDialogActiveCellFont).Show打開(kāi)另存對(duì)話框Dim kk As Stringkk=Application.GetSaveAsFilename(excel(*.xls),*.xls) Workbooks.Open kk1excle快捷鍵大全對(duì)工具欄進(jìn)行操作的快捷鍵激活菜單欄,F(xiàn)10,Alt選定前一個(gè)或下一個(gè)工具欄,Ctrl+Tab或Ctrl+Shift+Tab選定工具欄中的下一個(gè)或前一個(gè)按鈕或菜單,Tab或Shift+Tab(當(dāng)某個(gè)工具欄被激活時(shí))打開(kāi)選定的菜單,

12、Enter運(yùn)行選按鈕的操作,Enter在選定的文本框中輸入文本,Enter在對(duì)話框中使用的快捷鍵取消當(dāng)前任務(wù),Esc單擊相應(yīng)命令,Alt+下劃線字母單擊選定的按鈕,Enter在選項(xiàng)中前移,Tab在選項(xiàng)后移,Shift+Tab在選項(xiàng)卡中前移,Ctrl+Tab在選項(xiàng)卡中后移,Ctrl+Shift+Tab刷新“另存為”或“打開(kāi)”對(duì)話框,F5插入、刪除和復(fù)制選定區(qū)域的快捷鍵復(fù)制選定區(qū)域,Ctrl+C粘貼選定區(qū)域,Ctrl+V剪切選定區(qū)域,Ctrl+X清除選定區(qū)域的內(nèi)容,Delete插入空白單元格,Ctrl+Shift+加號(hào)刪除選定區(qū)域,Ctrl+-撤消最后一次操作,Ctrl+Z使用“office助手”

13、需要用到的快捷鍵關(guān)閉“office助手”提供的消息,Esc通過(guò)“office助手”獲取幫助信息,F1顯示下一項(xiàng)提示,Alt+N顯示前一項(xiàng)提示,Alt+B在向?qū)е酗@示或隱藏“office助手”,空格鍵對(duì)窗口進(jìn)行操作的快捷鍵切換到下一個(gè)程序,Alt+Tab切換到前一個(gè)程序,Alt+Shift+Tab顯示windwos“開(kāi)始”菜單,Ctrl+Esc關(guān)閉活動(dòng)工作薄窗口,Ctrl+W恢復(fù)活動(dòng)工作薄窗口,Ctrl+F5切換到下一個(gè)工作薄窗口,Ctrl+F6切換到前一個(gè)工作薄窗口,Ctrl+Shift+F6執(zhí)行“移動(dòng)”命令(菜單欄中的工作薄圖標(biāo)菜單),Ctrl+F7運(yùn)行“大小”命令(菜單欄中的工作薄圖標(biāo)菜單

14、),Ctrl+F8將工作薄窗口最小化為圖標(biāo),Ctrl+F9最大化或恢復(fù)工作薄窗口,Ctrl+F10在“打開(kāi)”或“另存為”對(duì)話框中更新可見(jiàn)的文件,F5使用對(duì)話框進(jìn)行操作的快捷鍵切換到對(duì)話框中的下一個(gè)選項(xiàng)卡,Ctrl+Tab或Ctrl+PageDown切換到對(duì)話框中的前一個(gè)選項(xiàng)卡,Ctrl+Shift+Tab或Ctrl+PageUp移動(dòng)到下一個(gè)選項(xiàng)或選項(xiàng)組,Tab移動(dòng)到前一個(gè)選項(xiàng)或選項(xiàng)組,Shift+Tab在活動(dòng)下拉列表框的選項(xiàng)間移動(dòng),或在選項(xiàng)組選項(xiàng)間移動(dòng),方向鍵招待活動(dòng)按鈕的操作,或選定或清除當(dāng)前復(fù)選框,空格鍵取消命令或關(guān)閉對(duì)話框,Esc在文本框中進(jìn)行操作的快捷鍵移動(dòng)到內(nèi)容的開(kāi)始,Home移動(dòng)到

15、內(nèi)容的最后,End向左或向右移動(dòng)一個(gè)字符,左右方向鍵向左或向右移動(dòng)一個(gè)字,Ctrl+左右方向鍵選定從插入點(diǎn)到開(kāi)始的輸入內(nèi)容,Shift+Home選定從插入點(diǎn)到最后的輸入內(nèi)容,Shift+End選定或取消左面的一個(gè)字符,Shift+左方向鍵選定或取消右面的一個(gè)字符,Shift+右方向鍵選定或取消左面的一個(gè)字,Ctrl+Shift+左方向鍵選定或取消右面的一個(gè)字,Ctrl+Shift+右方向鍵在工作表和工作薄中選定單元格、列、行或?qū)ο蟮目旖萱I選定當(dāng)前單元格周圍的區(qū)域,Ctrl+Shift+*(星號(hào))將選定區(qū)域擴(kuò)展一個(gè)單元格寬度,Shift+方向鍵將選定區(qū)域擴(kuò)展到與活動(dòng)單元格同一行或同一列的最后一個(gè)

16、非空白單元格,Ctrl+Shift+方向鍵將選定區(qū)域擴(kuò)展到行首,Shift+Home將選定區(qū)域擴(kuò)展到工作表的開(kāi)始,Ctrl+Shift+Home將選定區(qū)域擴(kuò)展到工作表的最后一個(gè)包含數(shù)據(jù)的單元格,Ctrl+Shift+End 選定整列,Ctrl+空格鍵選定整行,Shift+空格鍵選定整個(gè)工作表,Ctrl+A若已選定多個(gè)單元格,則只選定其中的活動(dòng)單元格,Shift+Backspace將選定區(qū)域向下擴(kuò)展一屏,Shift+PageDown將選定區(qū)域向上擴(kuò)展一屏,Shift+PageUp在選定一個(gè)對(duì)象時(shí),選定工作表上的所有對(duì)象,Ctrl+Shift+空格鍵在隱藏對(duì)象、顯示對(duì)象與對(duì)象占位符之間切換,Ctr

17、l+6顯示或隱藏“常用”工具欄,Ctrl+7分級(jí)顯示數(shù)據(jù)的快捷鍵取消行或列分組,Alt+Shift+左方向鍵對(duì)行或列分組,Alt+Shift+右方向鍵顯示或隱藏分級(jí)顯示符號(hào),Ctrl+8隱藏選定行,Ctrl+9取消隱藏選定行,Ctrl+Shift+(隱藏選定列,Ctrl+0取消隱藏選定列,Ctrl+Shift+)編輯單元格的快捷鍵完成單元格輸入,Enter取消單元格輸入,Esc重復(fù)單元格一次操作,F4或Ctrl+Y在單元格中折行,Alt+Enter刪除插入點(diǎn)左邊的字符或刪除選定區(qū)域,Backspace刪除插入點(diǎn)右邊的字符或刪除選定區(qū)域,Delete向上下左右移動(dòng)一個(gè)字符,方向鍵移到行首,Hom

18、e移到行尾,End編輯單元格批注,Shift+F2由行或列標(biāo)志創(chuàng)建名稱,Ctrl+Shift+F3向下填充,Ctrl+D向右填充,Ctrl+R用當(dāng)前輸入項(xiàng)填充選定的單元格區(qū)域,Ctrl+Enter完成單元格輸入并在選定區(qū)域中下移,Enter完成單元格輸入并在選定區(qū)域中上移,Shift+Enter完成單元格輸入并在選定區(qū)域中右移,Tab完成單元格輸入并在選定區(qū)域中左移,Shift+Tab在單元格或編輯欄中使用的快捷鍵鍵入公式,=(等號(hào))取消單元格或編輯欄中的輸入項(xiàng),Esc編輯當(dāng)前單元格,F2編輯活動(dòng)單元格并清除其內(nèi)容,或在編輯時(shí)刪除前一個(gè)字符,Backspace將名稱粘貼到公式中,F3定義名稱,

19、Ctrl+F3計(jì)算所有打開(kāi)工作薄中的所有工作表,F9計(jì)算活動(dòng)工作表,Shift+F9輸入“自動(dòng)求和”公式,Alt+=(等號(hào))輸入日期,Ctrl+;輸入時(shí)間,Ctrl+Shift+:插入超級(jí)鏈接,Ctrl+K完成單元格輸入,Enter將當(dāng)前單元格上方單元格中的數(shù)值復(fù)制到當(dāng)前單元格或編輯欄,Ctrl+Shift+(雙引號(hào))將當(dāng)前單元格上方單元格中的公式復(fù)制到當(dāng)前單元格或編輯欄,Ctrl+(單引號(hào))在顯示單元格值與單元格公式間轉(zhuǎn)換,Ctrl+(撇號(hào))輸入數(shù)組公式,Ctrl+Shift+Enter鍵入有效函數(shù)名后,顯示公式選項(xiàng)板,Ctrl+A鍵入有效函數(shù)名后,為該函數(shù)插入變量名和括號(hào),Ctrl+Shi

20、ft+A顯示“記憶式鍵入”列表,Ctrl+下方向鍵快捷鍵與數(shù)據(jù)格式設(shè)置顯示“樣式”命令,Alt+(單引號(hào))顯示“單元格”命令,Ctrl+1應(yīng)用常規(guī)數(shù)字格式,Ctrl+Shift+應(yīng)用帶兩個(gè)小數(shù)位的“貸幣”格式,Ctrl+Shift+$應(yīng)用不帶小數(shù)位的“百分比”格式,Ctrl+shift+%應(yīng)用帶兩個(gè)小數(shù)位的“科學(xué)記數(shù)”數(shù)字格式,Ctrl+shift+應(yīng)用年月日“日期”格式,Ctrl+shift+#應(yīng)用小時(shí)和分鐘“時(shí)間”格式,并表明上午或下午,Ctrl+shift+應(yīng)用外邊框,Ctrl+shift+&取消選定單元格區(qū)域中的所有邊框,Ctrl+shift+_應(yīng)用或取消字體加粗格式,Ctrl+B應(yīng)用

21、或取消字體傾斜格式,Ctrl+I應(yīng)用或取消字體下劃線格式,Ctrl+U應(yīng)用或取消刪除線格式,Ctrl+5隱藏行,Ctrl+9取消隱藏行,Ctrl+Shift+(隱藏列,Ctrl+0取消隱藏列,Ctrl+Shift+)使用Excel2021工作表的VBA示例適用范圍:Microsoft Office Excel2021摘要:尋找能夠?yàn)镋xcel工作表增加額外功能的宏。只需稍加練習(xí),您就可以擴(kuò)展這些程序,使其適合您自己的應(yīng)用程序。本頁(yè)內(nèi)容引言導(dǎo)出帶有逗號(hào)和引號(hào)分隔符的文本文件計(jì)算包含公式、文本或數(shù)字的單元格數(shù)量使用Saved屬性確定工作簿是否已發(fā)生更合并數(shù)據(jù)列數(shù)組中的總行數(shù)和總列數(shù)結(jié)論引言本文介紹

22、幾個(gè)Microsoft Visual Basic for Applications(VBA)宏,您可以使用這些宏為Microsoft Office Excel2021工作簿和工作表增加額外的功能。這些宏將為您的應(yīng)用程序提供新的功能或增強(qiáng)現(xiàn)有的功能。閱讀示例的同時(shí),您應(yīng)該尋找擴(kuò)展這些宏的方法,以適合您自己的情況。導(dǎo)出帶有逗號(hào)和引號(hào)分隔符的文本文件Excel沒(méi)有自動(dòng)將數(shù)據(jù)導(dǎo)出為文本文件的菜單命令,因此導(dǎo)出的文本文件同時(shí)帶有逗號(hào)和引號(hào)分隔符。例如,沒(méi)有命令能自動(dòng)創(chuàng)建包含以下內(nèi)容的文本文件:Text1,Text2,Text3但是,您可以使用VBA宏在Excel中創(chuàng)建該功能。這種文件格式是在諸如Micr

23、osoft Office Access2021和Microsoft Office Word2021之類的應(yīng)用程序中導(dǎo)入文本數(shù)據(jù)時(shí)常見(jiàn)的格式。您可以在如下所示的VBA宏中使用Print語(yǔ)句,導(dǎo)出同時(shí)帶有逗號(hào)和引號(hào)分隔符的文本文件。要使該程序正常運(yùn)行,必須在運(yùn)行該程序之前選擇包含數(shù)據(jù)的單元格。使用以下示例之前,請(qǐng)執(zhí)行以下步驟:1.打開(kāi)一個(gè)新工作簿。2.在“工具”菜單中,指向“宏”,然后單擊“Visual Basic編輯器”(或者簡(jiǎn)單地按下ALT+F11組合鍵)。在“Visual Basic編輯器”中,單擊“插入”菜單,然后單擊“模塊”。3.將以下示例代碼鍵入或粘貼到模塊中:Sub QuoteCom

24、maExport()Dim DestFile As StringDim FileNum As IntegerDim ColumnCount As IntegerDim RowCount As Integer提示用戶指定目標(biāo)文件名。DestFile=InputBox(Enter the destination filename&_Chr(10)&(with complete path and extension):,_Quote-Comma Exporter)獲取下一個(gè)可用的文件句柄編號(hào)。FileNum=FreeFile()關(guān)閉錯(cuò)誤檢查功能。On Error Resume Next嘗試打開(kāi)目標(biāo)文

25、件以供輸出。Open DestFile For Output As#FileNum如果出現(xiàn)錯(cuò)誤,則報(bào)告錯(cuò)誤并結(jié)束程序。If ErrMsgBoxCannot open filename&DestFileEndEnd If打開(kāi)錯(cuò)誤檢查功能。On Error GoTo0循環(huán)選擇的每一行。For RowCount=1To Selection.Rows.Count循環(huán)選擇的每一列。For ColumnCount=1To Selection.Columns.Count將當(dāng)前單元格中的文本寫(xiě)入到文件中,文本用引號(hào)括起來(lái)。Print#FileNum,&Selection.Cells(RowCount,_Col

26、umnCount).Text&;檢查單元格是否位于最后一列。If ColumnCount=Selection.Columns.Count Then如果是,則寫(xiě)入一個(gè)空行。Print#FileNum,Else否則,則寫(xiě)入一個(gè)逗號(hào)。Print#FileNum,;End If開(kāi)始ColumnCount循環(huán)的下一個(gè)迭代。Next ColumnCount開(kāi)始RowCount循環(huán)的下一個(gè)迭代。Next RowCount關(guān)閉目標(biāo)文件。Close#FileNumEnd Sub4.運(yùn)行該宏之前,請(qǐng)選擇要導(dǎo)出的數(shù)據(jù),然后在“工具”菜單中指向“宏”并單擊“宏”。5.選擇QuoteCommaExport宏,然后單擊“

27、運(yùn)行”。計(jì)算包含公式、文本或數(shù)字的單元格數(shù)量在Excel中,您可以對(duì)包含公式、文本或數(shù)字的工作表中的單元格數(shù)量進(jìn)行計(jì)算,方法是使用“定位條件”對(duì)話框選擇單元格,然后運(yùn)行計(jì)算所選單元格數(shù)量的宏。例如,當(dāng)您需要設(shè)置表格以確定合計(jì)列的每一行是否都包含公式而不用手動(dòng)檢查每一行時(shí),此方法可能很有用。選擇單元格要選擇公式、文本或數(shù)字,請(qǐng)執(zhí)行以下步驟:1.在“編輯”菜單中,單擊“定位”,然后單擊“定位條件”。2.在“定位條件”對(duì)話框中,要選擇所有公式,請(qǐng)單擊“公式”并確保選中“數(shù)字”、“文本”、“邏輯值”以及“錯(cuò)誤”復(fù)選框。要選擇文本,請(qǐng)選擇“常量”選項(xiàng),然后僅單擊并選中“文本”復(fù)選框。要選擇數(shù)字,請(qǐng)選擇“

28、常量”選項(xiàng),然后僅單擊并選中“數(shù)字”復(fù)選框。計(jì)算所選單元格數(shù)量的VBA代碼要計(jì)算所選的單元格數(shù)量并在消息框中顯示計(jì)算結(jié)果,請(qǐng)使用以下程序:Sub Count_Selection()Dim cell As ObjectDim count As Integercount=0For Each cell In Selectioncount=count+1MsgBox count&item(s)selectedEnd Sub您可以將此程序指定給一個(gè)命令按鈕,這樣,當(dāng)您單擊該按鈕時(shí),將顯示所選項(xiàng)的數(shù)量。使用Saved屬性確定工作簿是否已發(fā)生更改可以通過(guò)檢查工作簿的Saved屬性來(lái)確定工作簿是否已發(fā)生更改。

29、根據(jù)工作簿是否發(fā)生了更改,Saved屬性將返回True或False值。注意:用戶除了可以通過(guò)“事件”設(shè)置Saved屬性外,還可以通過(guò)代碼將其設(shè)置為True或False。本節(jié)包含的示例宏說(shuō)明了如何在這兩種情況下使用Saved 屬性。工作表中的各種情況(例如存在可變函數(shù))都可能會(huì)影響Saved屬性??勺兒瘮?shù)是指工作表中每次發(fā)生更改時(shí)都會(huì)重新計(jì)算的函數(shù),而不管發(fā)生的更改是否影響到這些函數(shù)。某些常見(jiàn)的可變函數(shù)包括RAND()、NOW()、TODAY()和OFFSET()。如果活動(dòng)工作簿包含未保存的更改,第一個(gè)宏將顯示如下消息:Sub TestForUnsavedChanges()If ActiveWo

30、rkbook.Saved=False ThenMsgBoxThis workbook contains unsaved changes.End IfEnd Sub下一個(gè)宏將關(guān)閉包含示例代碼的工作簿并放棄對(duì)工作簿所做的所有更改:Sub CloseWithoutChanges()ThisWorkbook.Saved=TrueThisWorkbook.CloseEnd Sub下面的示例宏也將關(guān)閉工作簿并放棄更改:Sub CloseWithoutChanges()ThisWorkbook.Close SaveChanges:=FalseEnd Sub合并數(shù)據(jù)列在Excel中,可以使用宏合并兩個(gè)相鄰列中

31、的數(shù)據(jù)并在包含數(shù)據(jù)的右側(cè)列中顯示結(jié)果,完全不需要手動(dòng)設(shè)置公式。本節(jié)包含的示例宏就可以實(shí)現(xiàn)此功能。Sub ConcatColumns()Do While ActiveCellActiveCell.Offset(0,1).FormulaR1C1=_ActiveCell.Offset(0,-1)&ActiveCell.Offset(0,0)ActiveCell.Offset(1,0).SelectLoop要使用宏,請(qǐng)執(zhí)行以下步驟:1.打開(kāi)包含數(shù)據(jù)的工作簿。2.按ALT+F11組合鍵激活“Visual Basic編輯器”。3.在“插入”菜單中,單擊“模塊”以插入一個(gè)模塊。在模塊的代碼窗口中鍵入上面的宏

32、。4.單擊“文件”菜單中的“關(guān)閉并返回到Microsoft Excel”。5.選擇包含要合并的數(shù)據(jù)的工作表。6.單擊要合并的右側(cè)數(shù)據(jù)列的第一個(gè)單元格。例如,如果單元格A1:A100和B1:B100包含數(shù)據(jù),則單擊單元格B1。7.在“工具”菜單中,指向“宏”并單擊“宏”。選擇ConcatColumns宏并單擊“運(yùn)行”。注意:可以用語(yǔ)句ActiveCell.Offset(0,1).Formula替換語(yǔ)句ActiveCell.Offset(0,1).FormulaR1C1。如果僅使用文本和數(shù)字(不包含公式),那么兩個(gè)語(yǔ)句的效果相同。第一個(gè)語(yǔ)句末尾使用的R1C1表示第一行的第一列,這是Excel幫助主

33、題中大多數(shù)示例使用的形式。數(shù)組中的總行數(shù)和總列數(shù)在Excel中,可以使用數(shù)組來(lái)計(jì)算和操作工作表中的數(shù)據(jù),還可以使用宏將某個(gè)范圍內(nèi)的單元格中的值存儲(chǔ)到一個(gè)數(shù)組中。本節(jié)中的示例宏代碼將在一個(gè)矩形單元格區(qū)域中添加一行和一列,以包含該區(qū)域中每一行和每一列中的單元格總數(shù)。具體的步驟是,代碼從活動(dòng)工作表上活動(dòng)單元格周圍的當(dāng)前單元格區(qū)域中讀取數(shù)據(jù)。宏將這些數(shù)據(jù)存儲(chǔ)在一個(gè)數(shù)組中,計(jì)算每一行和每一列中的單元格總數(shù),然后將輸出顯示在工作表中。數(shù)組的大小由當(dāng)前區(qū)域中的單元格數(shù)量決定。注意:此宏不會(huì)在工作表中添加任何公式,因此如果該范圍內(nèi)的單元格總數(shù)有變化,則必須重新運(yùn)行宏。使用以下示例之前,請(qǐng)執(zhí)行以下步驟:1.打開(kāi)

34、一個(gè)新工作簿。2.在“工具”菜單中,指向“宏”,然后單擊“Visual Basic編輯器”(或者簡(jiǎn)單地按下ALT+F11組合鍵)。在“Visual Basic編輯器”中的“插入”菜單中,單擊“模塊”。將以下示例代碼鍵入或粘貼到模塊中:Sub TotalRowsAndColumns()此宏假定您已從要計(jì)算單元格總數(shù)的矩形區(qū)域內(nèi)選擇了一個(gè)單元格或一組單元格。行和列的單元格總數(shù)將出現(xiàn)在當(dāng)前區(qū)域下面的行和右側(cè)的列中。Dim r As IntegerDim c As IntegerDim i As IntegerDim j As IntegerDim myArray As Variant將myArray

35、聲明為變量將使數(shù)組可以接收一組單元格。此時(shí),數(shù)組將自動(dòng)轉(zhuǎn)換為以下標(biāo)myArray(1,1)開(kāi)始的數(shù)組。指當(dāng)前所選單元格周圍的區(qū)域。With Selection.CurrentRegionr=.Rows.Countc=.Columns.Count重新計(jì)算總行數(shù)和總列數(shù)并將結(jié)果存儲(chǔ)到數(shù)組中。myArray=.Resize(r+1,c+1)在下面的嵌套循環(huán)中,變量i跟蹤行號(hào),變量j跟蹤列號(hào)。j在可用列中每循環(huán)一次,i就遞增一,而j則重新從一到c循環(huán)一次。For i=1To rFor j=1To c行i的總數(shù)myArray(i,c+1)=myArray(i,c+1)+myArray(i,j)列j的總數(shù)

36、myArray(r+1,j)=myArray(r+1,j)+myArray(i,j)總計(jì)myArray(r+1,c+1)=myArray(r+1,c+1)+myArray(i,j)Next jNext i將數(shù)組返回工作表,數(shù)組中現(xiàn)在包含一個(gè)新行和一個(gè)新列,用于存儲(chǔ)總數(shù)。.Resize(r+1,c+1)=myArrayEnd WithEnd Sub3.突出顯示要求和區(qū)域中的一個(gè)單元格,在“工具”菜單中,指向“宏”并單擊“宏”。4.選擇TotalRowsAndColumns宏,然后單擊“運(yùn)行”。注意:要執(zhí)行與本示例中的運(yùn)算類似的運(yùn)算,可以修改宏代碼。例如,要對(duì)選定范圍內(nèi)的單元格中包含的值進(jìn)行減法、

37、乘法或除法運(yùn)算,可以更改數(shù)學(xué)運(yùn)算符。結(jié)論本文介紹了各種VBA宏,使用這些宏可以減少使用工作表所需的工作量。此外,您還可以修改本文介紹的大多數(shù)宏以擴(kuò)展它們的功能。始終記住可以在工具或提示庫(kù)中添加更多宏,您將會(huì)受益匪淺。VBA系列講座(1):VBA是什么?1.1VBA是什么直到90年代早期,使應(yīng)用程序自動(dòng)化還是充滿挑戰(zhàn)性的領(lǐng)域.對(duì)每個(gè)需要自動(dòng)化的應(yīng)用程序,人們不得不學(xué)習(xí)一種不同的自動(dòng)化語(yǔ)言.例如:可以用EXCEL的宏語(yǔ)言來(lái)使EXCEL自動(dòng)化,使用WORD BASIC使WORD自動(dòng)化,等等.微軟決定讓它開(kāi)發(fā)出來(lái)的應(yīng)用程序共享一種通用的自動(dòng)化語(yǔ)言-Visual Basic For Applicatio

38、n(VBA),可以認(rèn)為VBA是非常流行的應(yīng)用程序開(kāi)發(fā)語(yǔ)言VASUAL BASIC 的子集.實(shí)際上VBA是寄生于VB應(yīng)用程序的版本.VBA和VB的區(qū)別包括如下幾個(gè)方面:1.VB是設(shè)計(jì)用于創(chuàng)建標(biāo)準(zhǔn)的應(yīng)用程序,而VBA是使已有的應(yīng)用程序(EXCEL 等)自動(dòng)化2.VB具有自己的開(kāi)發(fā)環(huán)境,而VBA必須寄生于已有的應(yīng)用程序.3.要運(yùn)行VB開(kāi)發(fā)的應(yīng)用程序,用戶不必安裝VB,因?yàn)閂B開(kāi)發(fā)出的應(yīng)用程序是可執(zhí)行文件(*.EXE),而VBA開(kāi)發(fā)的程序必須依賴于它的父應(yīng)用程序,例如EXCEL.盡管存在這些不同,VBA和VB在結(jié)構(gòu)上仍然十分相似.事實(shí)上,如果你已經(jīng)了解了VB,會(huì)發(fā)現(xiàn)學(xué)習(xí)VBA非???相應(yīng)的,學(xué)完VBA

39、會(huì)給學(xué)習(xí)VB打下堅(jiān)實(shí)的基礎(chǔ).而且,當(dāng)學(xué)會(huì)在EXCEL中用VBA創(chuàng)建解決方案后,即已具備在WORD ACCESS OUTLOOK FOXPRO PROWERPOINT中用VBA創(chuàng)建解決方案的大部分知識(shí).*VBA一個(gè)關(guān)鍵特征是你所學(xué)的知識(shí)在微軟的一些產(chǎn)品中可以相互轉(zhuǎn)化.*VBA可以稱作EXCEL的“遙控器”.VBA究竟是什么?更確切地講,它是一種自動(dòng)化語(yǔ)言,它可以使常用的程序自動(dòng)化,可以創(chuàng)建自定義的解決方案.此外,如果你愿意,還可以將EXCEL用做開(kāi)發(fā)平臺(tái)實(shí)現(xiàn)應(yīng)用程序.1.2EXCEL環(huán)境中基于應(yīng)用程序自動(dòng)化的優(yōu)點(diǎn)也許你想知道VBA可以干什么?使用VBA可以實(shí)現(xiàn)的功能包括:1.使重復(fù)的任務(wù)自動(dòng)化.

40、2.自定義EXCEL工具欄,菜單和界面.3.簡(jiǎn)化模板的使用.4.自定義EXCEL,使其成為開(kāi)發(fā)平臺(tái).5.創(chuàng)建報(bào)表.6.對(duì)數(shù)據(jù)進(jìn)行復(fù)雜的操作和分析.用EXCEL作為開(kāi)發(fā)平臺(tái)有如下原因:1.EXCEL本身功能強(qiáng)大,包括打印,文件處理,格式化和文本編輯.2.EXCEL內(nèi)置大量函數(shù).3.EXCEL界面熟悉.4.可連接到多種數(shù)據(jù)庫(kù).用其他語(yǔ)言開(kāi)發(fā)應(yīng)用程序,一半的工作是編寫(xiě)一些基本功能的模塊,包括文件的打開(kāi)和保存,打印,復(fù)制等.而用EXCEL作為開(kāi)發(fā)平臺(tái),則由于EXCEL已經(jīng)具備這些基本功能,你要做的只是使用它.1.3錄制簡(jiǎn)單的宏在介紹學(xué)習(xí)VBA之前,應(yīng)該花幾分鐘錄制一個(gè)宏。新術(shù)語(yǔ):“宏”,指一系列EXC

41、EL能夠執(zhí)行的VBA語(yǔ)句。以下將要錄制的宏非常簡(jiǎn)單,只是改變單元格顏色。請(qǐng)完成如下步驟:1)打開(kāi)新工作簿,確認(rèn)其他工作簿已經(jīng)關(guān)閉。2)選擇A1單元格。調(diào)出“常用”工具欄。3)選擇“工具”“宏”“錄制新宏”。4)輸入“改變顏色”作為宏名替換默認(rèn)宏名,單擊確定,注意,此時(shí)狀態(tài)欄中顯示“錄制”,特別是“停止錄制”工具欄也顯示出來(lái)。替換默認(rèn)宏名主要是便于分別這些宏。宏名最多可為255個(gè)字符,并且必須以字母開(kāi)始。其中可用的字符包括:字母、數(shù)字和下劃線。宏名中不允許出現(xiàn)空格。通常用下劃線代表空格。5)選擇“格式”的“單元格”,選擇“圖案”選項(xiàng)中的紅色,單擊“確定”。6)單擊“停止錄制”工具欄按鈕,結(jié)束宏錄

42、制過(guò)程。如果“停止錄制”工具欄開(kāi)始并未出現(xiàn),請(qǐng)選擇“工具”“宏”“停止錄制”。錄制完一個(gè)宏后就可以執(zhí)行它了。1.4執(zhí)行宏當(dāng)執(zhí)行一個(gè)宏時(shí),EXCEL按照宏語(yǔ)句執(zhí)行的情況就像VBA代碼在對(duì)EXCEL進(jìn)行“遙控”。但VBA的“遙控”不僅能使操作變得簡(jiǎn)便,還能使你獲得一些使用EXCEL標(biāo)準(zhǔn)命令所無(wú)法實(shí)現(xiàn)的功能。而且,一旦熟悉了EXCEL的“遙控”,你都會(huì)奇怪自己在沒(méi)有這些“遙控”的情況下,到底是怎么熬過(guò)來(lái)的。要執(zhí)行剛才錄制的宏,可以按以下步驟進(jìn)行:1)選擇任何一個(gè)單元格,比如A3。2)選擇“工具”“宏”“宏”,顯示“宏”對(duì)話框。3)選擇“改變顏色”,選擇“執(zhí)行”,則A3單元格的顏色變?yōu)榧t色。試著選擇其它單元格和幾個(gè)單元格組成的區(qū)域,然后再執(zhí)行宏,以便加深印象。1.5查看錄制的代碼到底是什么在控制EXCEL的運(yùn)行呢?你可能有些疑惑.好,讓我們看看VBA的語(yǔ)句吧.1)選擇“工具”“宏”“宏”,顯示“宏”對(duì)話框。2)單擊列表中的“改變顏色”,選擇“編輯”按鈕。此時(shí),會(huì)打開(kāi)VBA的編輯器窗口

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論