VBA命令大全匯集_第1頁
VBA命令大全匯集_第2頁
VBA命令大全匯集_第3頁
VBA命令大全匯集_第4頁
VBA命令大全匯集_第5頁
已閱讀5頁,還剩11頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、VBA 命令大全使用 Dim 語句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 為貨幣變量Dim z As Variant 定義實(shí)數(shù)(帶小數(shù)) 聲明變量可以是: Byte 、 Boolean 、 Integer、 Long、 Currency、 Single、 Double 、 Decimal (當(dāng) 前不支持)、Date、String (只限變長字符串)

2、、String * length (定長字符串)、Object、Variant、 用戶定義類型或?qū)ο箢愋汀?qiáng)制聲明變量Option Explicit說明:該語句必在任何過程之前出現(xiàn)在模塊中。聲明常數(shù)用來代替文字值。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' 在同一行里聲明多個常數(shù)。Const MyStr

3、= "Hello", MyDouble As Double = 3.4567選擇當(dāng)前單元格所在區(qū)域在EXCEL9神,有一個十分好的功能,他就是把鼠標(biāo)放置在一個有效數(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).Se

4、lect' 當(dāng)前單元格向左移動一格ActiveCell.Offset(0, -1).Select'當(dāng)前單元格向右移動一格ActiveCell.Offset(1 , 0).Select' 當(dāng)前單元格向下移動一格ActiveCell.Offset(-1 , 0).Select' 當(dāng)前單元格向上移動一格 end sub 如果上述程序產(chǎn)生錯誤那是因?yàn)閱卧癫荒芤苿?,為了解除上述錯誤,我們可以往sub my_offset 之下加一段代碼on error resume next注意以下代碼都不再添加sub “代碼名稱” 和 end sub 請自己添加!給當(dāng)前單元格賦值A(chǔ)ct

5、iveCell.Value = "你好! ! "給指定單元格賦值例如:A 1單元格內(nèi)容設(shè)為"HELLO "Range("a1").value="hello"又如:你現(xiàn)在的工作簿在sheetl上,你要往sheet2的A 1單元格中插入"HELLO "1.sheets("sheet2").selectrange("a1").value="hello"或2.Sheets("sheet1").Range("a1&q

6、uot;).Value = "hello"說明:1.sheet2被選中,然后在將“ HELLO賦至U A1單元格中。2.sheet2不必被選中,即可“ HELLO賦至U sheet2的A1單元格中。隱藏工作表'隱藏SHEET1這張工作表sheets("sheet1").Visible=False'顯示SHEET1這張工作表sheets("sheet1").Visible=True打印預(yù)覽有時候我們想把所有的EXCELSS SHEETS印預(yù)覽,請使用該段代碼,它將在你現(xiàn)有的工作簿中循環(huán),直到最后一個工作簿結(jié)束循環(huán)預(yù)覽。D

7、im my As WorksheetFor Each my In Worksheetsmy.PrintPreviewNext my得到當(dāng)前單元格的地址msgbox ActiveCell.Address得到當(dāng)前日期及時間msgbox date & chr(13) & time保護(hù)工作簿ActiveSheet.Protect取消保護(hù)工作簿ActiveSheet.Unprotect給活動工作表改名為 "liu"ActiveSheet.Name = "liu"打開一個應(yīng)用程序AppActivate (Shell("C:WINDOWSCA

8、LC.EXE")增加一個工作表Worksheets.Add刪除活動工作表activesheet.delete打開一個工作簿文件Workbooks.Open FileName:="C:My DocumentsBook2.xls"關(guān)閉活動窗口ActiveWindow.Close單元格格式選定單元格左對齊Selection.HorizontalAlignment = xlLeft選定單元格居中Selection.HorizontalAlignment = xlCenter選定單元格右對齊Selection.HorizontalAlignment = xlRight選定單

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

10、域的列數(shù)MsgBox Selection.Columns.Count返回選定區(qū)域的地址Selection.Address忽略所有的錯誤ON ERROR RESUME NEXT遇錯跳轉(zhuǎn)on error goto err_handle'中間的其他代碼err_handle: ' 標(biāo)簽'跳轉(zhuǎn)后的代碼刪除一個文件kill "c:1.txt"定制自己的狀態(tài)欄Application.StatusBar = " 現(xiàn)在時刻 : " & Time恢復(fù)自己的狀態(tài)欄Application.StatusBar = false用代碼執(zhí)行一個宏Appl

11、ication.Run macro:="text"滾動窗口到 a1 的位置ActiveWindow.ScrollRow = 1ActiveWindow.ScrollColumn = 1定制系統(tǒng)日期Dim MyDate, MyDayMyDate = #12/12/69#MyDay = Day(MyDate)返回當(dāng)天的時間Dim MyDate, MyYearMyDate = DateMyYear = Year(MyDate)MsgBox MyYearinputbox< 輸入框 >XX=InputBox ("Enter number of months to

12、 add")得到一個文件名Dim kk As Stringkk = Application.GetOpenFilename("EXCEL (*.XLS), *.XLS”, Titlek”提示:請打開一個 EXCELS件:")msgbox kk打開 zoom 對話框Application.Dialogs(xlDialogZoom).Show激活字體對話框Application.Dialogs(xlDialogActiveCellFont).Show打開另存對話框Dim kk As Stringkk = Application.GetSaveAsFilename(&q

13、uot;excel (*.xls), *.xls")Workbooks.Open kk1 excle 快捷鍵大全對工具欄進(jìn)行操作的快捷鍵激活菜單欄,F(xiàn)10, Alt選定前一個或下一個工具欄,Ctrl+Tab或Ctrl+Shift+Tab選定工具欄中的下一個或前一個按鈕或菜單,Tab或Shift+Tab(當(dāng)某個工具欄被激活時)打開選定的菜單, Enter運(yùn)行選按鈕的操作, Enter在選定的文本框中輸入文本, Enter在對話框中使用的快捷鍵取消當(dāng)前任務(wù),Esc單擊相應(yīng)命令,Alt+下劃線字母單擊選定的按鈕,Enter在選項(xiàng)中前移,Tab在選項(xiàng)后移,Shift+Tab在選項(xiàng)卡中前移,C

14、trl+Tab在選項(xiàng)卡中后移,Ctrl+Shift+Tab刷新“另存為”或“打開”對話框,F5插入、刪除和復(fù)制選定區(qū)域的快捷鍵復(fù)制選定區(qū)域, Ctrl+C粘貼選定區(qū)域,Ctrl+V剪切選定區(qū)域,Ctrl+X清除選定區(qū)域的內(nèi)容, Delete插入空白單元格,Ctrl+Shift+加號刪除選定區(qū)域,Ctrl+-撤消最后一次操作,Ctrl+Z使用“office 助手”需要用到的快捷鍵關(guān)閉“office 助手”提供的消息,Esc通過“ office 助手”獲取幫助信息,F1顯示下一項(xiàng)提示,Alt+N顯示前一項(xiàng)提示,Alt+B在向?qū)е酗@示或隱藏“ office 助手”,空格鍵對窗口進(jìn)行操作的快捷鍵切換到

15、下一個程序,Alt+Tab切換到前一個程序,Alt+Shift+Tab顯示 windwos “開始”菜單 ,Ctrl+Esc關(guān)閉活動工作薄窗口,Ctrl+W恢復(fù)活動工作薄窗口,Ctrl+F5切換到下一個工作薄窗口,Ctrl+F6切換到前一個工作薄窗口,Ctrl+Shift+F6執(zhí)行“移動”命令(菜單欄中的工作薄圖標(biāo)菜單),Ctrl+F7運(yùn)行“大小”命令(菜單欄中的工作薄圖標(biāo)菜單),Ctrl+F8將工作薄窗口最小化為圖標(biāo),Ctrl+F9最大化或恢復(fù)工作薄窗口 ,Ctrl+F10在“打開”或“另存為”對話框中更新可見的文件,F5使用對話框進(jìn)行操作的快捷鍵切換到對話框中的下一個選項(xiàng)卡,Ctrl+Ta

16、b或Ctrl+PageDown切換到對話框中的前一個選項(xiàng)卡,Ctrl+Shift+Tab 或 Ctrl+PageUp移動到下一個選項(xiàng)或選項(xiàng)組,Tab移動到前一個選項(xiàng)或選項(xiàng)組,Shift+Tab在活動下拉列表框的選項(xiàng)間移動,或在選項(xiàng)組選項(xiàng)間移動,方向鍵招待活動按鈕的操作,或選定或清除當(dāng)前復(fù)選框,空格鍵取消命令或關(guān)閉對話框,Esc在文本框中進(jìn)行操作的快捷鍵移動到內(nèi)容的開始,Home移動到內(nèi)容的最后,End向左或向右移動一個字符,左右方向鍵向左或向右移動一個字,Ctrl+左右方向鍵選定從插入點(diǎn)到開始的輸入內(nèi)容, Shift+Home選定從插入點(diǎn)到最后的輸入內(nèi)容, Shift+End選定或取消左面的一

17、個字符,Shift+左方向鍵選定或取消右面白一個字符,Shift+右方向鍵選定或取消左面的一個字,Ctrl+Shift+左方向鍵選定或取消右面的一個字,Ctrl+Shift+右方向鍵在工作表和工作薄中選定單元格、列、行或?qū)ο蟮目旖萱I選定當(dāng)前單元格周圍的區(qū)域,Ctrl+Shift+*( 星號 )將選定區(qū)域擴(kuò)展一個單元格寬度,Shift+方向鍵,Ctrl+Shift+ 方向鍵將選定區(qū)域擴(kuò)展到與活動單元格同一行或同一列的最后一個非空白單元格將選定區(qū)域擴(kuò)展到行首,Shift+Home將選定區(qū)域擴(kuò)展到工作表的開始 ,Ctrl+Shift+Home將選定區(qū)域擴(kuò)展到工作表的最后一個包含數(shù)據(jù)的單元格 ,Ctr

18、l+Shift+End選定整列, Ctrl+ 空格鍵選定整行 ,Shift+ 空格鍵選定整個工作表,Ctrl+A若已選定多個單元格,則只選定其中的活動單元格 ,Shift+Backspace將選定區(qū)域向下擴(kuò)展一屏,Shift+PageDown將選定區(qū)域向上擴(kuò)展一屏,Shift+PageUp在選定一個對象時,選定工作表上的所有對象,Ctrl+Shift+ 空格鍵在隱藏對象、顯示對象與對象占位符之間切換, Ctrl+6顯示或隱藏“常用”工具欄,Ctrl+7分級顯示數(shù)據(jù)的快捷鍵取消行或列分組,Alt+Shift+左方向鍵對行或列分組,Alt+Shift+右方向鍵顯示或隱藏分級顯示符號,Ctrl+8隱

19、藏選定行,Ctrl+9取消隱藏選定行,Ctrl+Shift+(隱藏選定列,Ctrl+0取消隱藏選定列,Ctrl+Shift+)編輯單元格的快捷鍵完成單元格輸入,Enter取消單元格輸入, Esc重復(fù)單元格一次操作,F4 或 Ctrl+Y在單元格中折行,Alt+Enter刪除插入點(diǎn)左邊的字符或刪除選定區(qū)域,Backspace刪除插入點(diǎn)右邊的字符或刪除選定區(qū)域,Delete向上下左右移動一個字符,方向鍵移到行首,Home移到行尾,End編輯單元格批注,Shift+F2由行或列標(biāo)志創(chuàng)建名稱,Ctrl+Shift+F3向下填充,Ctrl+D向右填充,Ctrl+R用當(dāng)前輸入項(xiàng)填充選定的單元格區(qū)域,Ctr

20、l+Enter完成單元格輸入并在選定區(qū)域中下移,Enter完成單元格輸入并在選定區(qū)域中上移,Shift+Enter完成單元格輸入并在選定區(qū)域中右移,Tab完成單元格輸入并在選定區(qū)域中左移,Shift+Tab在單元格或編輯欄中使用的快捷鍵鍵入公式,=(等號 )取消單元格或編輯欄中的輸入項(xiàng),Esc編輯當(dāng)前單元格 ,F2Backspace,Ctrl+Shift+(雙引號)Ctrl+'(單引號)編輯活動單元格并清除其內(nèi)容,或在編輯時刪除前一個字符,將名稱粘貼到公式中 ,F3定義名稱 ,Ctrl+F3計(jì)算所有打開工作薄中的所有工作表,F9計(jì)算活動工作表,Shift+F9輸入“自動求和”公式,Al

21、t+=(等號)輸入日期 ,Ctrl+;輸入時間,Ctrl+Shift+:插入超級鏈接,Ctrl+K完成單元格輸入 ,Enter將當(dāng)前單元格上方單元格中的數(shù)值復(fù)制到當(dāng)前單元格或編輯欄將當(dāng)前單元格上方單元格中的公式復(fù)制到當(dāng)前單元格或編輯欄,在顯示單元格值與單元格公式間轉(zhuǎn)換,Ctrl+'(撇號)輸入數(shù)組公式,Ctrl+Shift+Enter鍵入有效函數(shù)名后,顯示公式選項(xiàng)板,Ctrl+A鍵入有效函數(shù)名后,為該函數(shù)插入變量名和括號,Ctrl+Shift+A顯示“記憶式鍵入”列表,Ctrl+下方向鍵 快捷鍵與數(shù)據(jù)格式設(shè)置顯示“樣式”命令,Alt+'(單引號)顯示“單元格”命令,Ctrl+1

22、應(yīng)用常規(guī)數(shù)字格式,Ctrl+Shift+應(yīng)用帶兩個小數(shù)位的“貸幣”格式,Ctrl+Shift+$應(yīng)用不帶小數(shù)位的“百分比”格式,Ctrl+shift+%應(yīng)用帶兩個小數(shù)位的“科學(xué)記數(shù)”數(shù)字格式,Ctrl+shift+A應(yīng)用年月日“日期”格式,Ctrl+shift+#應(yīng)用小時和分鐘“時間”格式,并表明上午或下午,Ctrl+shift+應(yīng)用外邊框,Ctrl+shift+&取消選定單元格區(qū)域中的所有邊框,Ctrl+shift+_應(yīng)用或取消字體加粗格式,Ctrl+B應(yīng)用或取消字體傾斜格式,Ctrl+I應(yīng)用或取消字體下劃線格式,Ctrl+U應(yīng)用或取消刪除線格式,Ctrl+5隱藏行,Ctrl+9取消

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

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

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

26、碼鍵入或粘貼到模塊中:Sub QuoteCommaExport()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 Expor

27、ter")' 獲取下一個可用的文件句柄編號。FileNum = FreeFile()' 關(guān)閉錯誤檢查功能。On Error Resume Next' 嘗試打開目標(biāo)文件以供輸出。Open DestFile For Output As #FileNum' 如果出現(xiàn)錯誤,則報(bào)告錯誤并結(jié)束程序。If Err <> 0 ThenMsgBox "Cannot open filename " & DestFileEndEnd If' 打開錯誤檢查功能。On Error GoTo 0' 循環(huán)選擇的每一行。For

28、RowCount = 1 To Selection.Rows.Count' 循環(huán)選擇的每一列。For ColumnCount = 1 To Selection.Columns.Count' 將當(dāng)前單元格中的文本寫入到文件中, 文本用引 號括起來。Print #FileNum, """" & Selection.Cells(RowCount, _ColumnCount).Text & """"' 檢查單元格是否位于最后一列。If ColumnCount = Selection.

29、Columns.Count Then' 如果是,則寫入一個空行。Print #FileNum,Else' 否則,則寫入一個逗號。Print #FileNum, ","End If' 開始ColumnCount 循環(huán)的下一個迭代。Next ColumnCount' 開始RowCount 循環(huán)的下一個迭代。Next RowCount' 關(guān)閉目標(biāo)文件。Close #FileNumEnd Sub4. 運(yùn)行該宏之前,請選擇要導(dǎo)出的數(shù)據(jù),然后在“工具”菜單中指向“宏”并單擊“宏” 。5. 選擇 QuoteCommaExport 宏,然后單擊“運(yùn)行

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

31、框。要選擇數(shù)字,請選擇“常量”選項(xiàng),然后僅單擊并選中“數(shù)字”復(fù)選框。計(jì)算所選單元格數(shù)量的 VBA 代碼要計(jì)算所選的單元格數(shù)量并在消息框中顯示計(jì)算結(jié)果,請使用以下程序:Sub Count_Selection()Dim cell As ObjectDim count As Integercount = 0For Each cell In Selectioncount = count + 1Next cellMsgBox count & " item(s) selected"End Sub您可以將此程序指定給一個命令按鈕,這樣,當(dāng)您單擊該按鈕時,將顯示所選項(xiàng)的數(shù)量。使用

32、Saved 屬性確定工作簿是否已發(fā)生更改可以通過檢查工作簿的 Saved 屬性來確定工作簿是否已發(fā)生更改。根據(jù)工作簿是否發(fā)生了更改, Saved 屬性將返回 True 或 False 值。注意: 用戶除了可以通過 “事件” 設(shè)置 Saved 屬性外, 還可以通過代碼將其設(shè)置為 True 或False。本節(jié)包含的示例宏說明了如彳在這兩種情況下使用Saved屬性。工作表中的各種情況(例如存在可變函數(shù))都可能會影響Saved 屬性??勺兒瘮?shù)是指工作表中每次發(fā)生更改時都會重新計(jì)算的函數(shù), 而不管發(fā)生的更改是否影響到這些函數(shù)。 某些常見的可變函數(shù)包括RAND()、 NOW()、 TODAY() 和 OF

33、FSET(。)如果活動工作簿包含未保存的更改,第一個宏將顯示如下消息:Sub TestForUnsavedChanges()If ActiveWorkbook.Saved = False ThenMsgBox "This workbook contains unsaved changes."End IfEnd Sub下一個宏將關(guān)閉包含示例代碼的工作簿并放棄對工作簿所做的所有更改:Sub CloseWithoutChanges()ThisWorkbook.Saved = TrueThisWorkbook.CloseEnd Sub下面的示例宏也將關(guān)閉工作簿并放棄更改:Sub C

34、loseWithoutChanges()ThisWorkbook.Close SaveChanges:=FalseEnd Sub合并數(shù)據(jù)列在 Excel 中, 可以使用宏合并兩個相鄰列中的數(shù)據(jù)并在包含數(shù)據(jù)的右側(cè)列中顯示結(jié)果, 完全不需要手動設(shè)置公式。本節(jié)包含的示例宏就可以實(shí)現(xiàn)此功能。Sub ConcatColumns()Do While ActiveCell <> ""' 一直循環(huán),直到活動單元格為空。ActiveCell.Offset(0, 1).FormulaR1C1 = _ActiveCell.Offset(0, -1) & "

35、" & ActiveCell.Offset(0, 0)ActiveCell.Offset(1, 0).SelectLoopEnd Sub要使用宏,請執(zhí)行以下步驟:1. 打開包含數(shù)據(jù)的工作簿。2. 按 ALT+F11 組合鍵激活“ Visual Basic 編輯器” 。3. 在“插入”菜單中,單擊“模塊”以插入一個模塊。在模塊的代碼窗口中鍵入上面的宏。4. 單擊“文件”菜單中的“關(guān)閉并返回到 Microsoft Excel ”。5. 選擇包含要合并的數(shù)據(jù)的工作表。6. 單擊要合并的右側(cè)數(shù)據(jù)列的第一個單元格。例如,如果單元格 A1:A100 和 B1:B100 包 含數(shù)據(jù),則單擊

36、單元格 B1 。7. 在“工具”菜單中,指向“宏”并單擊“宏” 。選擇 ConcatColumns 宏并單擊“運(yùn)行” 。注 意 : 可 以 用 語 句 ActiveCell.Offset(0, 1).Formula 替 換 語 句 ActiveCell.Offset(0,1).FormulaR1C1。 如果僅使用文本和數(shù)字(不包含公式) , 那么兩個語句的效果相同。 第一個語句末尾使用的 R1C1 表示第一行的第一列,這是Excel 幫助主題中大多數(shù)示例使用的形數(shù)組中的總行數(shù)和總列數(shù)在 Excel 中, 可以使用數(shù)組來計(jì)算和操作工作表中的數(shù)據(jù), 還可以使用宏將某個范圍內(nèi)的單元格中的值存儲到一個

37、數(shù)組中。 本節(jié)中的示例宏代碼將在一個矩形單元格區(qū)域中添加一行和一列,以包含該區(qū)域中每一行和每一列中的單元格總數(shù)。具體的步驟是, 代碼從活動工作表上活動單元格周圍的當(dāng)前單元格區(qū)域中讀取數(shù)據(jù)。 宏將這些數(shù)據(jù)存儲在一個數(shù)組中, 計(jì)算每一行和每一列中的單元格總數(shù), 然后將輸出顯示在工作表中。數(shù)組的大小由當(dāng)前區(qū)域中的單元格數(shù)量決定。注意: 此宏不會在工作表中添加任何公式, 因此如果該范圍內(nèi)的單元格總數(shù)有變化, 則必須重新運(yùn)行宏。使用以下示例之前,請執(zhí)行以下步驟:1. 打開一個新工作簿。2. 在“工具” 菜單中, 指向 “宏” , 然后單擊 “ Visual Basic 編輯器” (或者簡單地按下 ALT

38、+F11 組合鍵) 。在“ Visual Basic 編輯器”中的“插入”菜單中,單擊“模塊” 。將以下示例代碼鍵入或粘貼到模塊中:Sub TotalRowsAndColumns()' 此宏假定您已從' 要計(jì)算單元格總數(shù)的矩形區(qū)域內(nèi)' 選擇了一個單元格或一組單元格。 行和列的單元格總數(shù)將出現(xiàn)在' 當(dāng)前區(qū)域下面的行和右側(cè)的列中。Dim r As IntegerDim c As IntegerDim i As IntegerDim j As IntegerDim myArray As Variant' 將 myArray 聲明為變量將使數(shù)組可以接收'

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

40、 j = 1 To c' 行 i 的總數(shù)myArray(i, c + 1) = myArray(i, c + 1) + myArray(i, j)' 列 j 的總數(shù)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)在包含一個' 新行和一個新列,用于存儲總數(shù)。.Resize(r + 1, c + 1) = myArray

41、End WithEnd Sub3. 突出顯示要求和區(qū)域中的一個單元格,在“工具”菜單中,指向“宏”并單擊“宏” 。4. 選擇 TotalRowsAndColumns 宏,然后單擊“運(yùn)行” 。注意: 要執(zhí)行與本示例中的運(yùn)算類似的運(yùn)算, 可以修改宏代碼。例如, 要對選定范圍內(nèi)的單元格中包含的值進(jìn)行減法、乘法或除法運(yùn)算,可以更改數(shù)學(xué)運(yùn)算符。結(jié)論本文介紹了各種 VBA 宏,使用這些宏可以減少使用工作表所需的工作量。此外,您還可以修改本文介紹的大多數(shù)宏以擴(kuò)展它們的功能。始終記住可以在工具或提示庫中添加更多宏,您將會受益匪淺。VBA系列講座(1):VBA是什么?1.1 VBA 是什么直到 90 年代早期

42、,使應(yīng)用程序自動化還是充滿挑戰(zhàn)性的領(lǐng)域.對每個需要自動化的應(yīng)用程序,人們不得不學(xué)習(xí)一種不同的自動化語言.例如:可以用EXCEL的宏語言來使EXCEL1動化,使用WORD BASIC使WORD自動化,等等.微軟決定讓它開發(fā)出來的應(yīng)用程序共享一種通用的 自動化語言 Visual Basic For Application(VBA), 可以認(rèn)為 VBA 是非常流行的應(yīng)用程序開發(fā)語言VASUAL BASIC勺子集.實(shí)際上VBA是"寄生于"VB應(yīng)用程序的版本.VBA和VB的區(qū)別包括 如下幾個方面:1. VB是設(shè)計(jì)用于創(chuàng)建標(biāo)準(zhǔn)的應(yīng)用程序,而VBA是使已有的應(yīng)用程序(EXCELS)自動化

43、2. VB 具有自己的開發(fā)環(huán)境,而 VBA 必須寄生于已有的應(yīng)用程序.3. 要運(yùn)行VB開發(fā)的應(yīng)用程序,用戶不必安裝 VB,因?yàn)閂B開發(fā)出的應(yīng)用程序是可執(zhí)行文 件(*工*口,而VBA開發(fā)的程序必須依賴于它的 "父"應(yīng)用程序,例如EXCEL.盡管存在這些不同,VBA和VB在結(jié)構(gòu)上仍然十分相似.事實(shí)上,如果你已經(jīng)了解了 VB,會發(fā) 現(xiàn)學(xué)習(xí)VBA非???相應(yīng)的,學(xué)完VBA會給學(xué)習(xí)VB打下堅(jiān)實(shí)的基礎(chǔ).而且,當(dāng)學(xué)會在EXCE仲用 VBA創(chuàng)建解決方案后,即已具備在WORD ACCESSOUTLOOK FOXPROPROWERPOINT中用VBA 創(chuàng)建解決方案的大部分知識 .* VBA 一

44、個關(guān)鍵特征是你所學(xué)的知識在微軟的一些產(chǎn)品中可以相互轉(zhuǎn)化 .* VBA可以稱作EXCEL勺“遙控器”.VBA 究竟是什么?更確切地講,它是一種自動化語言,它可以使常用的程序自動化,可以創(chuàng)建自定義的解決方案.此外,如果你愿意,還可以將EXCE用做開發(fā)平臺實(shí)現(xiàn)應(yīng)用程序.1.2 EXCE/境中基于應(yīng)用程序自動化的優(yōu)點(diǎn)也許你想知道VBA可以干什么?使用VBA可以實(shí)現(xiàn)的功能包括:1. 使重復(fù)的任務(wù)自動化 .2. 自定義EXCELXM欄,菜單和界面.3. 簡化模板的使用 .4. 自定義EXCEL®其成為開發(fā)平臺.5. 創(chuàng)建報(bào)表 .6. 對數(shù)據(jù)進(jìn)行復(fù)雜的操作和分析.用EXCEL乍為開發(fā)平臺有如下原因

45、:1. EXCE陣身功能強(qiáng)大,包括才T印,文件處理,格式化和文本編輯.2. EXCE吶置大量函數(shù).3. EXCE留面熟悉.4. 可連接到多種數(shù)據(jù)庫.用其他語言開發(fā)應(yīng)用程序,一半的工作是編寫一些基本功能的模塊,包括文件的打開和保存,打印,復(fù)制等.而用EXCEL乍為開發(fā)平臺,則由于EXCEL已經(jīng)具備這些基本功能,你要做的只 是使用它 .1.3 錄制簡單的宏在介紹學(xué)習(xí) VBA 之前,應(yīng)該花幾分鐘錄制一個宏。新術(shù)語:“宏”,指一系列EXCE骷夠執(zhí)行的VBA語句。以下將要錄制的宏非常簡單,只是改變單元格顏色。請完成如下步驟:1) 打開新工作簿,確認(rèn)其他工作簿已經(jīng)關(guān)閉。2)選擇A1 單元格。調(diào)出“常用”工

46、具欄。3)選擇“工具”“宏”“錄制新宏”。4)輸入“改變顏色”作為宏名替換默認(rèn)宏名,單擊確定,注意,此時狀態(tài)欄中顯示“錄制” ,特別是“停止錄制”工具欄也顯示出來。替換默認(rèn)宏名主要是便于分別這些宏。 宏名最多可為255 個字符,并且必須以字母開始。其中可用的字符包括:字母、數(shù)字和下劃線。宏名中不允許出現(xiàn)空格。通常用下劃線代表空格。5)選擇“格式”的“單元格”,選擇“圖案”選項(xiàng)中的紅色,單擊“確定”。6)單擊“停止錄制”工具欄按鈕,結(jié)束宏錄制過程。 如果“停止錄制”工具欄開始并未出現(xiàn),請選擇“工具”“宏”“停止錄制” 。 錄制完一個宏后就可以執(zhí)行它了。1.4 執(zhí)行宏當(dāng)執(zhí)行一個宏時,EXCEL&#

47、174;照宏語句執(zhí)行的情況就像VBA代碼在對EXCE進(jìn)行“遙控”。但VBA的“遙控”不僅能使操作變得簡便,還能使你獲得一些使用EXCE所準(zhǔn)命令所無法實(shí)現(xiàn)的功能。而且,一旦熟悉了EXCELS “遙控”,你都會奇怪自己在沒有這些“遙控”的情況下,到底是怎么熬過來的。要執(zhí)行剛才錄制的宏,可以按以下步驟進(jìn)行:1)選擇任何一個單元格,比如 A3 。2)選擇“工具”“宏”“宏”,顯示“宏”對話框。3)選擇“改變顏色” ,選擇“執(zhí)行” ,則 A3 單元格的顏色變?yōu)榧t色。試著選擇其它單元格和幾個單元格組成的區(qū)域,然后再執(zhí)行宏,以便加深印象。1.5 查看錄制的代碼 到底是什么在控制EXCEL勺運(yùn)彳T呢?你可能有些疑惑.女?,讓我們看看VBA的語句吧.1)選擇“工具”“宏”“宏”

溫馨提示

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

評論

0/150

提交評論