24個有用的Excel 宏示例給VBA 初學者(即用型)
文章推薦指數: 80 %
使用Excel 宏可以加快工作速度並節省大量時間。
獲取VBA 代碼的一種方法是記錄宏並獲取它生成的代碼。
但是,宏記錄器的代碼通常充滿了並不真正需要的代碼。
CloseMenu
Home
最佳筆記本電腦推薦
2021年最佳遊戲筆記本電腦:可玩的頂級筆記本電腦
華碩AsusTUFfx505dt評價:真正負擔得起的遊戲筆記本電腦
2021年適合大學生的最佳筆記本電腦:大學筆記本電腦推薦
AcerSwift3SF314-42評價:重量輕巧的筆記本電腦,以合理的價格提供性能
LenovoFlex5評價:大屏幕2合1主流價格
HP15-dy1036nrReview–預算之內的筆記本電腦
DellXPS139300評價:完美的13英寸Ultrabook
ASUSVivoBook15F512JA-AS34評價:輕,薄,並且功能強大
Windows情報
Android情報
iOS情報
Linux情報
VPN情報
VPN推薦
Windows情報
WordPress情報
雲端情報
雲端推薦
TweetShareSharePin0Shares
使用Excel宏可以加快工作速度並節省大量時間。
獲取VBA代碼的一種方法是記錄宏並獲取它生成的代碼。
但是,宏記錄器的代碼通常充滿了並不真正需要的代碼。
宏記錄器也有一些限制。
因此,擁有一組有用的VBA宏代碼是值得的,您可以將它們放在您的後兜里,並在需要時使用它。
雖然最初編寫ExcelVBA宏代碼可能需要一些時間,但一旦完成,您可以將其作為參考,並在下次需要時使用它。
在這篇龐大的文章中,我將列出一些我經常需要的有用的Excel宏示例,並保存在我的私人保管庫中。
我將繼續使用更多宏示例更新本教程。
如果您認為某些內容應該在列表中,請發表評論。
您可以將此頁面添加為書籤以供將來參考。
現在,在我進入宏示例並為您提供VBA代碼之前,讓我首先向您展示如何使用這些示例代碼。
Contents1使用Excel宏示例中的代碼2如何運行宏3Excel宏示例3.1一次性取消隱藏所有工作表3.2隱藏除活動工作表之外的所有工作表3.3使用VBA按字母順序對工作表進行排序3.4一次性保護所有工作表3.5一次性取消保護所有工作表3.6取消隱藏所有行和列3.7取消合併所有合併的單元格3.8保存名稱中帶有時間戳的工作簿3.9將每個工作表另存為單獨的PDF3.10將每個工作表另存為單獨的PDF3.11將所有公式轉換為值3.12使用公式保護/鎖定單元格3.13保護工作簿中的所有工作表3.14在所選內容的每一行之後插入一行3.15在相鄰單元格中自動插入日期和時間戳3.16突出顯示選擇中的備用行3.17突出顯示拼寫錯誤的單元格3.18刷新工作簿中的所有數據透視表3.19將所選單元格的字母大小寫更改為大寫3.20用註釋突出顯示所有單元格3.21使用VBA突出顯示空白單元格3.22如何按單列對數據進行排序3.23如何按多列對數據進行排序3.24如何從Excel中的字符串中僅獲取數字部分4哦,您好很高興認識你。
使用Excel宏示例中的代碼
以下是使用任何示例中的代碼需要遵循的步驟:
打開要在其中使用宏的工作簿。
按住ALT鍵並按F11。
這將打開VB編輯器。
右鍵單擊項目資源管理器中的任何對象。
轉到插入->模塊。
複製並粘貼模塊代碼窗口中的代碼。
如果示例說您需要將代碼粘貼到工作表代碼窗口中,請雙擊工作表對象並將代碼複製粘貼到代碼窗口中。
在工作簿中插入代碼後,您需要使用.XLSM或.XLS擴展名保存它。
如何運行宏
在VB編輯器中復制代碼後,運行宏的步驟如下:
轉到開發人員選項卡。
單擊宏。
在“宏”對話框中,選擇要運行的宏。
單擊運行按鈕。
如果您在功能區中找不到開發人員選項卡,請閱讀本教程以了解如何獲取它。
如果代碼粘貼在工作表代碼窗口中,您無需擔心運行代碼。
當指定的動作發生時它會自動運行。
現在,讓我們進入有用的宏示例,這些示例可以幫助您自動化工作並節省時間。
注意:您會發現很多撇號(‘)後跟一兩行。
這些是在運行代碼時被忽略的註釋,並作為自我/讀者的註釋放置。
如果您在文章或代碼中發現任何錯誤,請大神告訴我。
Excel宏示例
本文介紹了以下宏示例:
一次性取消隱藏所有工作表
如果您正在處理具有多個隱藏工作表的工作簿,則需要逐個取消隱藏這些工作表。
如果有很多隱藏的工作表,這可能需要一些時間。
這是取消隱藏工作簿中所有工作表的代碼。
'Thiscodewillunhideallsheetsintheworkbook
SubUnhideAllWoksheets()
DimwsAsWorksheet
ForEachwsInActiveWorkbook.Worksheets
ws.Visible=xlSheetVisible
Nextws
EndSub
上面的代碼使用VBA循環(ForEach)來遍歷工作簿中的每個工作表。
然後它將工作表的可見屬性更改為可見。
這是有關如何使用各種方法在Excel中取消隱藏工作表的詳細教程。
隱藏除活動工作表之外的所有工作表
如果您正在處理報表或儀表板,並且想要隱藏除具有報表/儀表板的工作表之外的所有工作表,則可以使用此宏代碼。
'Thismacrowillhidealltheworksheetexcepttheactivesheet
SubHideAllExceptActiveSheet()
DimwsAsWorksheet
ForEachwsInThisWorkbook.Worksheets
Ifws.Name<>ActiveSheet.NameThenws.Visible=xlSheetHidden
Nextws
EndSub
使用VBA按字母順序對工作表進行排序
如果您有一個包含許多工作表的工作簿,並且您想按字母順序對這些工作表進行排序,那麼此宏代碼可以派上用場。
如果您將工作表名稱作為年份或員工姓名或產品名稱,則可能會出現這種情況。
'Thiscodewillsorttheworksheetsalphabetically
SubSortSheetsTabName()
Application.ScreenUpdating=False
DimShCountAsInteger,iAsInteger,jAsInteger
ShCount=Sheets.Count
Fori=1ToShCount-1
Forj=i+1ToShCount
IfSheets(j).Name
為此,在VB編輯器中,雙擊您想要此功能的工作表名稱。
然後將此代碼複製並粘貼到該工作表的代碼窗口中。
此外,當在A列中完成數據輸入時,此代碼可以工作(請注意,代碼具有Target.Column=1行)。
您可以相應地更改它。
突出顯示選擇中的備用行
突出顯示交替行可以極大地提高數據的可讀性。
當您需要打印出來並瀏覽數據時,這可能很有用。
這是一個代碼,它將立即突出顯示選擇中的備用行。
'Thiscodewouldhighlightalternaterowsintheselection
SubHighlightAlternateRows()
DimMyrangeAsRange
DimMyrowAsRange
SetMyrange=Selection
ForEachMyrowInMyrange.Rows
IfMyrow.RowMod2=1Then
Myrow.Interior.Color=vbCyan
EndIf
NextMyrow
EndSub
請注意,我在代碼中將顏色指定為vbCyan。
您也可以指定其他顏色(例如vbRed、vbGreen、vbBlue)。
突出顯示拼寫錯誤的單元格
Excel沒有Word或PowerPoint中的拼寫檢查。
雖然您可以通過按F7鍵來運行拼寫檢查,但在出現拼寫錯誤時沒有視覺提示。
使用此代碼可立即突出顯示所有有拼寫錯誤的單元格。
'Thiscodewillhighlightthecellsthathavemisspelledwords
SubHighlightMisspelledCells()
DimclAsRange
ForEachclInActiveSheet.UsedRange
IfNotApplication.CheckSpelling(word:=cl.Text)Then
cl.Interior.Color=vbRed
EndIf
Nextcl
EndSub
請注意,突出顯示的單元格是具有Excel認為是拼寫錯誤的文本的單元格。
在許多情況下,它還會突出顯示它不理解的名稱或品牌術語。
刷新工作簿中的所有數據透視表
如果工作簿中有多個數據透視表,則可以使用此代碼一次刷新所有這些數據透視表。
'ThiscodewillrefreshallthePivotTableintheWorkbook
SubRefreshAllPivotTables()
DimPTAsPivotTable
ForEachPTInActiveSheet.PivotTables
PT.RefreshTable
NextPT
EndSub
您可以在此處閱讀有關刷新數據透視表的更多信息。
將所選單元格的字母大小寫更改為大寫
雖然Excel具有更改文本字母大小寫的公式,但它使您可以在另一組單元格中執行此操作。
使用此代碼可立即更改所選文本中文本的字母大小寫。
'ThiscodewillchangetheSelectiontoUpperCase
SubChangeCase()
DimRngAsRange
ForEachRngInSelection.Cells
IfRng.HasFormula=FalseThen
Rng.Value=UCase(Rng.Value)
EndIf
NextRng
EndSub
請注意,在這種情況下,我使用UCase將文本大小寫設置為大寫。
您可以將LCase用於小寫。
相關問題 如何在Excel中刪除前導零[5種簡單方法]用註釋突出顯示所有單元格
使用以下代碼突出顯示其中包含註釋的所有單元格。
'Thiscodewillhighlightcellsthathavecomments`
SubHighlightCellsWithComments()
ActiveSheet.Cells.SpecialCells(xlCellTypeComments).Interior.Color=vbBlue
EndSub
在這種情況下,我使用vbBlue為單元格賦予藍色。
如果需要,您可以將其更改為其他顏色。
使用VBA突出顯示空白單元格
雖然您可以使用條件格式或使用“轉到特殊”對話框突出顯示空白單元格,但如果您必須經常這樣做,最好使用宏。
創建後,您可以在快速訪問工具欄中擁有此宏或將其保存在您的個人宏工作簿中。
這是VBA宏代碼:
'Thiscodewillhighlightalltheblankcellsinthedataset
SubHighlightBlankCells()
DimDatasetasRange
SetDataset=Selection
Dataset.SpecialCells(xlCellTypeBlanks).Interior.Color=vbRed
EndSub
在這段代碼中,我指定了以紅色突出顯示的空白單元格。
您可以選擇其他顏色,例如藍色、黃色、青色等。
如何按單列對數據進行排序
您可以使用以下代碼按指定列對數據進行排序。
SubSortDataHeader()
Range("DataRange").SortKey1:=Range("A1"),Order1:=xlAscending,Header:=xlYes
EndSub
請注意,我創建了一個名為“DataRange”的命名範圍,並使用它代替了單元格引用。
這裡還使用了三個關鍵參數:
Key1–這是您要對數據集進行排序的鍵。
在上面的示例代碼中,數據將根據A列中的值進行排序。
Order1–在這裡您需要指定是否要按升序或降序對數據進行排序。
Header–在這裡您需要指定您的數據是否有標頭。
閱讀有關如何使用VBA在Excel中對數據進行排序的更多信息。
如何按多列對數據進行排序
假設您有一個如下所示的數據集:
下面是基於多列對數據進行排序的代碼:
SubSortMultipleColumns()
WithActiveSheet.Sort
.SortFields.AddKey:=Range("A1"),Order:=xlAscending
.SortFields.AddKey:=Range("B1"),Order:=xlAscending
.SetRangeRange("A1:C13")
.Header=xlYes
.Apply
EndWith
EndSub
請注意,這裡我已指定首先基於A列排序,然後基於B列排序。
輸出將如下所示:
如何從Excel中的字符串中僅獲取數字部分
如果您只想從字符串中提取數字部分或文本部分,您可以在VBA中創建自定義函數。
然後,您可以在工作表中使用此VBA函數(就像常規Excel函數一樣),它將僅從字符串中提取數字或文本部分。
如下圖所示:
下面是VBA代碼,它將創建一個從字符串中提取數字部分的函數:
'ThisVBAcodewillcreateafunctiontogetthenumericpartfromastring
FunctionGetNumeric(CellRefAsString)
DimStringLengthAsInteger
StringLength=Len(CellRef)
Fori=1ToStringLength
IfIsNumeric(Mid(CellRef,i,1))ThenResult=Result&Mid(CellRef,i,1)
Nexti
GetNumeric=Result
EndFunction
您需要將代碼放入模塊中,然後您可以在工作表中使用函數=GetNumeric。
此函數將只接受一個參數,即要從中獲取數字部分的單元格的單元格引用。
同樣,下面的函數將只從Excel中的字符串中獲取文本部分:
'ThisVBAcodewillcreateafunctiontogetthetextpartfromastring
FunctionGetText(CellRefAsString)
DimStringLengthAsInteger
StringLength=Len(CellRef)
Fori=1ToStringLength
IfNot(IsNumeric(Mid(CellRef,i,1)))ThenResult=Result&Mid(CellRef,i,1)
Nexti
GetText=Result
EndFunction
因此,這些是一些有用的Excel宏代碼,您可以在日常工作中使用它們來自動執行任務並提高工作效率。
Pleaseleavethisfieldempty
哦,您好很高興認識你。
訂閱我們的電子報,定期發送很棒的科技內容到您的郵箱。
你已經成功訂閱電子報!
TweetShareSharePin0Shares
PreviousPost
如何過濾包含重複文本字符串(單詞)的單元格
NextPost
100多個Excel面試問題和答案,讓您做好工作準備
YouMightAlsoLike:
PostComment取消回覆留言*顯示名稱*
電子郵件地址*
個人網站網址
在瀏覽器中儲存顯示名稱、電子郵件地址及個人網站網址,以供下次發佈留言時使用。
Δ
reportthisad
Pleaseleavethisfieldempty
哦,您好很高興認識你。
訂閱我們的電子報,定期發送很棒的科技內容到您的郵箱。
你已經成功訂閱電子報!
近期文章
[已修復]MicrosoftStore無法下載應用程序和遊戲
[已修復]MicrosoftStore無法安裝應用程式
16款適用於PC的最佳免費屏幕錄像機
修復屏幕鏡像AmazonFirestick問題
SnapCamera“沒有可用的相機輸入”錯誤–修復步驟
推薦產品
KiboCodeemail
5個月/
0Comments
Keepsolid
1年/
0Comments
NordVPN
1年/
0Comments
PureVPN
1年/
0Comments
Surfshark
1年/
0Comments
reportthisad
Search
關於我們我們是David和Walter。
在審查電腦和小工具時,OK技術大師具有全球專業知識。
多年來,我們一直在報導最新的技術問題。
分類
2020年最佳遊戲筆記本電腦:可玩的頂級筆記本電腦(5)
2020年適合大學生的最佳筆記本電腦:大學筆記本電腦推薦(6)
Android情報(67)
iOS情報(65)
Linux情報(13)
VPN情報(12)
VPN推薦(38)
Windows情報(277)
Wordpress情報(13)
技術支援(98)
雲端情報(18)
雲端推薦(18)
TermsandConditions-PrivacyPolicy
xx
延伸文章資訊
- 1Excel VBA與巨集程式設計:新手入門就靠這一本 - 博客來
本書是針對VBA新手所設計,內容涵蓋初學者必學的巨集錄製器、範圍參照、迴圈及流程控制、R1C1格式的公式、名稱的建立與使用、事件驅動程式設計等基礎知識,還網羅了 ...
- 2Excel VBA初階概念:入門超easy,工作效率翻倍提升
- 3Office 的VBA 入門
曾經需要將從Excel 貼到Word 文件或Outlook 電子郵件的多個表格的格式重新 ... 特別是初學者,除非您有充裕的時間能細心工作,否則不要輕易開始進行 ...
- 4Excel 2007 VBA 初學者的14堂課 - 讀冊
Excel 2007 VBA 初學者的14堂課. 志凌資訊. 上奇資訊股份有限公司. 9789866587658. 本書採用全新的版面設計及全圖示化模式編寫,加上流暢的文字敘述,條理分明的步驟 ...
- 524個有用的Excel 宏示例給VBA 初學者(即用型)
使用Excel 宏可以加快工作速度並節省大量時間。 獲取VBA 代碼的一種方法是記錄宏並獲取它生成的代碼。但是,宏記錄器的代碼通常充滿了並不真正需要的代碼。