跳到主要内容

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

在某些情况下,您将来可能需要多次使用一个 VBA 宏。 是否有可能 以某种方式将 VBA 模块保存到任何新文档中 所以它将在所有工作簿中可用? 答案是肯定的。 在本教程中,我们将介绍一种简单的方法来实现您的目标。
文档在所有工作簿中保存使用 vba 宏 1

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


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

例如,您想使用 VBA 代码 将数字转换为英文单词将 VBA 模块保存在所有工作簿中 以防您将来想使用 VBA 代码。 请执行以下操作。

1。 按 Alt + F11键 键,然后打开 Microsoft Visual Basic应用程序 窗口。

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 中,然后按 输入 键,会返回对应的英文单词。 向下拖动自动填充手柄以获得所有结果。
文档在所有工作簿中保存使用 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