HI,,大家好,我是星光,。話說我們有一個完整的VBA小代碼系列,,包含了多表匯總,總表拆分,,圖片導(dǎo)入等常見問題處理,。在菜單依次單擊【資源福利】→【VBA常用代碼】即可獲取。但總會有朋友詢問VBA代碼如何使用,,這里就先聊一下,。
舉個例子。
比如下面這段代碼,,作用是合并多個工作表數(shù)據(jù)成總表,。
Sub CollectData() Dim Sht As Worksheet, rng As Range, k&, n& Application.ScreenUpdating = False '取消屏幕刷新 n = Val(InputBox('請輸入標(biāo)題的行數(shù)', '提醒')) If n < 0 Then MsgBox '標(biāo)題行數(shù)不能為負(fù)數(shù)。', 64, '提示': Exit Sub '取得用戶輸入的標(biāo)題行數(shù),,如果為負(fù)數(shù),,退出程序 Cells.ClearContents '清空當(dāng)前表數(shù)據(jù) For Each Sht In Worksheets '遍歷工作表 If Sht.Name <> ActiveSheet.Name Then '如果工作表名稱不等于當(dāng)前表名則進(jìn)行匯總動作…… Set rng = Sht.UsedRange '定義rng為表格已用區(qū)域 k = k + 1 '累計表的個數(shù) If k = 1 Then '如果是首個表格,則把標(biāo)題行一起復(fù)制到匯總表 rng.Copy Cells(1, 1).PasteSpecial Paste:=xlPasteValues Else '否則,,扣除標(biāo)題行后再復(fù)制黏貼到總表 rng.Offset(n).Copy Cells(ActiveSheet.UsedRange.Rows.Count + 1, 1) _ .PasteSpecial Paste:=xlPasteValues End If End If Next Cells(1, 1).Activate Application.ScreenUpdating = True '恢復(fù)屏幕刷新 MsgBox '一共匯總了' & k & '張工作表,。' End Sub
操作步驟如下: ▎1,<Ctrl+C>完整復(fù)制代碼,。
▎2,,打開目標(biāo)Excel工作簿,右鍵單擊任意工作表名稱,,執(zhí)行右鍵菜單的【查看代碼】命令,,或者按<ALT+F11>組合鍵,打開VBE窗口,。
▎3,,在VBE窗口界面,,右鍵單擊左側(cè)任意工作表名稱,例如下圖所示的Sheet1,,在彈出的選項菜單中,,依次單擊【插入】→【模塊】
▎4,,單擊選中新建的模塊,,在右側(cè)代碼窗口粘貼代碼,然后關(guān)閉該窗口
到這一步,,我們就將代碼粘貼到VBE編輯器了,,下一步就是運行它。運行代碼有多種方式,,如果你只需要運行一次,,鼠標(biāo)點擊代碼任何一處,然后按F5即可,。如果你需要在當(dāng)前工作簿多次運行相關(guān)代碼,,則最好是制作一個命令按鈕,操作過程參考以下步驟▼▎5,,在工作表的【插入】選項卡下,,依次單擊【形狀】→【矩形】在當(dāng)前工作表繪制一個大小任意你滿意就好的矩形。
▎6,,右鍵單擊該矩形,,在彈出的菜單中選擇【指定宏】命令。打開【指定宏】對話框,,選擇目標(biāo)宏名,,例如本例的CollectData,最后單擊【確定】按鈕,。
▎7,,OK,單擊該矩形形狀,,就可以運行小代碼了,。函數(shù),、透視表,、VBA、PQ,、SQL教程全覆蓋,,想學(xué)什么你就學(xué)什么……
|