24個有用的Excel 宏示例給VBA 初學者(即用型)

文章推薦指數: 80 %
投票人數:10人

使用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""Then Application.EnableEvents=False Target.Offset(0,1)=Format(Now(),"dd-mm-yyyyhh:mm:ss") Application.EnableEvents=True EndIf Handler: EndSub 請注意,您需要將此代碼插入工作表代碼窗口中(而不是像我們迄今為止在其他Excel宏示例中所做的那樣在模塊代碼窗口中插入)。

為此,在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



請為這篇文章評分?