跳到主要內容

如何在 Excel 的所有工作簿中保存和使用 VBA 宏?

在某些情況下,您將來可能需要多次使用一個 VBA 宏。 是否有可能 以某種方式將 VBA 模塊保存到任何新文檔中 所以它將在所有工作簿中可用? 答案是肯定的。 在本教程中,我們將介紹一種簡單的方法來實現您的目標。
文檔在所有工作簿中保存使用 vba 宏 1

在所有工作簿中保存和使用 VBA 代碼


在所有工作簿中保存和使用 VBA 代碼

例如,您想使用 VBA 代碼 將數字轉換為英文單詞將 VBA 模塊保存在所有工作簿中 以防您將來想使用 VBA 代碼。 請執行以下操作。

1。 按 Alt + F11鍵 鍵,然後打開 Microsoft Visual Basic for Applications 窗口。

2。 點擊 插入 > 模塊 並將以下宏粘貼到模塊窗口中。

VBA 代碼:將數字轉換為單詞

Function NumberstoWords(ByVal MyNumber)
'Update by Extendoffice
Dim xStr As String
Dim xFNum As Integer
Dim xStrPoint
Dim xStrNumber
Dim xPoint As String
Dim xNumber As String
Dim xP() As Variant
Dim xDP
Dim xCnt As Integer
Dim xResult, xT As String
Dim xLen As Integer
On Error Resume Next
xP = Array("", "Thousand ", "Million ", "Billion ", "Trillion ", " ", " ", " ", " ")
xNumber = Trim(Str(MyNumber))
xDP = InStr(xNumber, ".")
xPoint = ""
xStrNumber = ""
If xDP > 0 Then
xPoint = " point "
xStr = Mid(xNumber, xDP + 1)
xStrPoint = Left(xStr, Len(xNumber) - xDP)
For xFNum = 1 To Len(xStrPoint)
xStr = Mid(xStrPoint, xFNum, 1)
xPoint = xPoint & GetDigits(xStr) & " "
Next xFNum
xNumber = Trim(Left(xNumber, xDP - 1))
End If
xCnt = 0
xResult = ""
xT = ""
xLen = 0
xLen = Int(Len(Str(xNumber)) / 3)
If (Len(Str(xNumber)) Mod 3) = 0 Then xLen = xLen - 1
Do While xNumber <> ""
If xLen = xCnt Then
xT = GetHundredsDigits(Right(xNumber, 3), False)
Else
If xCnt = 0 Then
xT = GetHundredsDigits(Right(xNumber, 3), True)
Else
xT = GetHundredsDigits(Right(xNumber, 3), False)
End If
End If
If xT <> "" Then
xResult = xT & xP(xCnt) & xResult
End If
If Len(xNumber) > 3 Then
xNumber = Left(xNumber, Len(xNumber) - 3)
Else
xNumber = ""
End If
xCnt = xCnt + 1
Loop
xResult = xResult & xPoint
NumberstoWords = xResult
End Function
Function GetHundredsDigits(xHDgt, xB As Boolean)
Dim xRStr As String
Dim xStrNum As String
Dim xStr As String
Dim xI As Integer
Dim xBB As Boolean
xStrNum = xHDgt
xRStr = ""
On Error Resume Next
xBB = True
If Val(xStrNum) = 0 Then Exit Function
xStrNum = Right("000" & xStrNum, 3)
xStr = Mid(xStrNum, 1, 1)
If xStr <> "0" Then
xRStr = GetDigits(Mid(xStrNum, 1, 1)) & "Hundred "
Else
If xB Then
xRStr = "and "
xBB = False
Else
xRStr = " "
xBB = False
End If
End If
If Mid(xStrNum, 2, 2) <> "00" Then
xRStr = xRStr & GetTenDigits(Mid(xStrNum, 2, 2), xBB)
End If
GetHundredsDigits = xRStr
End Function
Function GetTenDigits(xTDgt, xB As Boolean)
Dim xStr As String
Dim xI As Integer
Dim xArr_1() As Variant
Dim xArr_2() As Variant
Dim xT As Boolean
xArr_1 = Array("Ten ", "Eleven ", "Twelve ", "Thirteen ", "Fourteen ", "Fifteen ", "Sixteen ", "Seventeen ", "Eighteen ", "Nineteen ")
xArr_2 = Array("", "", "Twenty ", "Thirty ", "Forty ", "Fifty ", "Sixty ", "Seventy ", "Eighty ", "Ninety ")
xStr = ""
xT = True
On Error Resume Next
If Val(Left(xTDgt, 1)) = 1 Then
xI = Val(Right(xTDgt, 1))
If xB Then xStr = "and "
xStr = xStr & xArr_1(xI)
Else
xI = Val(Left(xTDgt, 1))
If Val(Left(xTDgt, 1)) > 1 Then
If xB Then xStr = "and "
xStr = xStr & xArr_2(Val(Left(xTDgt, 1)))
xT = False
End If
If xStr = "" Then
If xB Then
xStr = "and "
End If
End If
If Right(xTDgt, 1) <> "0" Then
xStr = xStr & GetDigits(Right(xTDgt, 1))
End If
End If
GetTenDigits = xStr
End Function
Function GetDigits(xDgt)
Dim xStr As String
Dim xArr_1() As Variant
xArr_1 = Array("Zero ", "One ", "Two ", "Three ", "Four ", "Five ", "Six ", "Seven ", "Eight ", "Nine ")
xStr = ""
On Error Resume Next
xStr = xArr_1(Val(xDgt))
GetDigits = xStr
End Function

3。 點擊 節省 功能區左上角的圖標或單擊 按Ctrl + S 打開 另存為 窗口。文檔在所有工作簿中保存使用 vba 宏 2

4。 在裡面 另存為 窗口中輸入工作簿名稱 文件名 盒子。 並選擇 Excel 加載項 (*.xlam) 在選項 保存類型 下拉列表。
文檔在所有工作簿中保存使用 vba 宏 3

5。 然後點擊 節省 按鈕將帶有 VBA 代碼的工作簿保存為 Excel 加載項.
文檔在所有工作簿中保存使用 vba 宏 4

6.返回 Excel,關閉已保存為 Excel 插件的空工作簿。

7. 打開一個包含需要轉換的數據的新工作簿。 輸入公式 = NumberstoWords(A2) 在單元格 B2 中。 這 #NAME? 將返回錯誤值,因為尚未在所有工作簿中應用 VBA 代碼。
文檔在所有工作簿中保存使用 vba 宏 5

8。 轉到 開發者 標籤,點擊 Excel加載項 ,在 加載項 組。
文檔在所有工作簿中保存使用 vba 宏 6

9。 “ 加入 對話框彈出。 點擊 瀏覽 按鈕。
文檔在所有工作簿中保存使用 vba 宏 7

10. 選擇剛才保存的插件,然後點擊 OK 按鈕。
文檔在所有工作簿中保存使用 vba 宏 8

11.然後 將數字轉換為單詞加載項 您自定義的被插入並打開。 點擊 OK 按鈕完成設置。
文檔在所有工作簿中保存使用 vba 宏 9

12.現在當你輸入公式時 = NumberstoWords(A2) 在單元格 B2 中,然後按 Enter 鍵,會返回對應的英文單詞。 向下拖動自動填充手柄以獲得所有結果。
文檔在所有工作簿中保存使用 vba 宏 10

筆記:

如果需要運行代碼 手動, 沒有辦法從上面的步驟中找到它。 請不要擔心。 有 兩種方式 運行代碼。

  1. 您可以將代碼添加到 快速工具欄 並在每次單擊工具欄上的代碼按鈕時運行代碼。
    文檔在所有工作簿中保存使用 vba 宏 11
  2. 也可以直接按 Alt + F11鍵 打開對碼操作框,找到對碼,按 F5 跑步。

其他操作(文章)

用於在 Excel 中列出所有加載項的 VBA 代碼
在Excel中,您可以添加或插入一些加載項以更好地處理數據。 眾所周知,我們可以轉到“選項”窗口查看所有加載項,但是有什麼方法可以在工作表中列出所有加載項? 現在,在本教程中,它提供了VBA代碼,用於列出Excel中的所有加載項。

打開或關閉工作簿時如何運行 VBA 宏?
在本文中,我將告訴您如何在每次打開或關閉工作簿時運行 VBA 代碼。

如何在 Excel 中保護/鎖定 VBA 代碼?
就像您可以使用密碼來保護工作簿和工作表一樣,您也可以設置密碼來保護 Excel 中的宏。

在 Excel 中運行 VBA 宏後如何使用時間延遲?
在某些情況下,您可能需要延遲計時器才能觸發Excel中的VBA宏。 例如,單擊以運行指定的宏時,它將在10秒後生效。 本文將向您展示一種實現它的方法。

 


  • 超級公式欄 (輕鬆編輯多行文本和公式); 閱讀版式 (輕鬆讀取和編輯大量單元格); 粘貼到過濾範圍...
  • 合併單元格/行/列 和保存數據; 拆分單元格內容; 合併重複的行和總和/平均值...防止細胞重複; 比較範圍...
  • 選擇重複或唯一 行; 選擇空白行 (所有單元格都是空的); 超級查找和模糊查找 在許多工作簿中; 隨機選擇...
  • 確切的副本 多個單元格,無需更改公式參考; 自動創建參考 到多張紙; 插入項目符號,複選框等...
  • 收藏并快速插入公式,範圍,圖表和圖片; 加密單元 帶密碼 創建郵件列表 並發送電子郵件...
  • 提取文字,添加文本,按位置刪除, 刪除空間; 創建和打印分頁小計; 在單元格內容和註釋之間轉換...
  • 超級濾鏡 (將過濾方案保存並應用於其他工作表); 高級排序 按月/週/日,頻率及更多; 特殊過濾器 用粗體,斜體...
  • 結合工作簿和工作表; 根據關鍵列合併表; 將數據分割成多個工作表; 批量轉換xls,xlsx和PDF...
  • 數據透視表分組依據 週號,週幾等 顯示未鎖定的單元格 用不同的顏色 突出顯示具有公式/名稱的單元格...
kte選項卡201905
  • 在Word,Excel,PowerPoint中啟用選項卡式編輯和閱讀,發布者,Access,Visio和Project。
  • 在同一窗口的新選項卡中而不是在新窗口中打開並創建多個文檔。
  • 將您的工作效率提高 50%,每天為您減少數百次鼠標點擊!
officetab底部

 

 

Comments (1)
No ratings yet. Be the first to rate!
This comment was minimized by the moderator on the site
Thank you very much hundred timessss
There are no comments posted here yet
Please leave your comments in English
Posting as Guest
×
Rate this post:
0   Characters
Suggested Locations