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

网友投稿 500 2024-02-09

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

在某些情况下,您将来可能需要多次使用一个 VBA 宏。 是否有可能 以某种方式将 VBA 模块保存到任何新文档中

所以它将在所有工作簿中可用? 答案是肯定的。 在本教程中,我们将介绍一种简单的方法来实现您的目标。

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

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

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

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

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

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
Copy

3。 点击 保存 功能区左上角的图标或单击 按Ctrl + S 打开 另存为 窗口。

4.在 另存为 窗口中输入工作簿名称 文件 盒子。 并选择 Excel 加载项 (*.xlam) 在选项 保存类型

下拉列表。

5.然后点击 保存 按钮将带有 VBA 代码的工作簿保存为 Excel 插件

.

6.返回 Excel,关闭已保存为 Excel 插件的空工作簿。

7. 打开一个包含需要转换的数据的新工作簿。 输入公式 = NumberstoWords(A2) 在单元格 B2 中。 这 #NAME?

将返回错误值,因为尚未在所有工作簿中应用 VBA 代码。

8。 去 开发商 标签,点击 Excel加载项 ,在 加载项

组。

9. 加入 弹出对话框。 点击 浏览

按钮。

10. 选择刚才保存的插件,然后点击 OK

按钮。

11.然后 将数字转换为单词加载项 您自定义的被插入并打开。 点击 OK

按钮完成设置。

12.现在当你输入公式时 = NumberstoWords(A2) 在单元格 B2 中,然后按 输入

键,会返回对应的英文单词。 向下拖动自动填充手柄以获得所有结果。

:

如果需要运行代码 手动, 没有办法从上面的步骤中找到它。 请不要担心。 有 两种方式 运行代码。

您可以将代码添加到快速工具栏

并在每次单击工具栏上的代码按钮时运行代码。

也可以直接按 Alt + F11键 打开对码操作框,找到对码,按 F5 跑步。
其他操作(文章)

用于在 Excel 中列出所有加载项的 VBA 代码在Excel中,您可以添加或插入一些加载项以更好地处理数据。 众所周知,我们可以转到“选项”窗口查看所有加载项,但是有什么方法可以在工作表中列出所有加载项? 现在,在本教程中,它提供了VBA代码,用于列出Excel中的所有插件。

打开或关闭工作簿时如何运行 VBA 宏?在本文中,我将告诉您如何在每次打开或关闭工作簿时运行 VBA 代码。

如何在 Excel 中保护/锁定 VBA 代码?就像您可以使用密码来保护工作簿和工作表一样,您也可以设置密码来保护 Excel 中的宏。

在 Excel 中运行 VBA 宏后如何使用时间延迟?在某些情况下,您可能需要延迟计时器才能触发Excel中的VBA宏。 例如,单击以运行指定的宏时,它将在10秒后生效。 本文将向您展示一种实现它的方法。

更多文章 

最佳办公效率工具

Kutools for Excel解决了您的大多数问题,并使您的生产率提高了80%

超级公式栏 (轻松编辑多行文本和公式); 阅读视图 (轻松读取和编辑大量单元格); 粘贴到过滤范围... 合并单元格/行/列 和保存数据; 拆分单元格内容; 合并重复的行和总和/平均值...防止细胞重复; 比较范围... 选择重复或唯一 行; 选择空白行 (所有单元格都是空的); 超级查找和模糊查找 在许多工作簿中; 随机选择... 确切的副本 多个单元格,无需更改公式参考; 自动创建参考 到多张纸; 插入项目符号,复选框等... 收藏并快速插入公式,范围,图表和图片; 加密单元 带密码 创建邮件列表 并发送电子邮件... 提取文字,添加文本,按位置删除, 删除空间; 创建和打印分页小计; 在单元格内容和注释之间转换... 超级筛选 (将过滤方案保存并应用于其他工作表); 高级排序 按月/周/日,频率及更多; 特殊过滤器 用粗体,斜体... 结合工作簿和工作表; 根据关键列合并表; 将数据分割成多个工作表; 批量转换xls,xlsx和PDF... 数据透视表分组依据 周号,周几等 显示未锁定的单元格 用不同的颜色 突出显示具有公式/名称的单元格...
阅读更多 功能齐全的30天免费试用版... 采购... 

Office Tab - 为 Office 带来选项卡式界面,让您的工作更加轻松

在Word,Excel,PowerPoint中启用选项卡式编辑和阅读,发布者,Access,Visio和Project。 在同一窗口的新选项卡中而不是在新窗口中打开并创建多个文档。 每天将您的工作效率提高50%,并减少数百次鼠标单击!
阅读更多 功能齐全的30天免费试用版... 采购...

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:如何从 Excel 打印邮件列表标签?
下一篇:如何计算Excel中忽略N / A的是和否的百分比?
相关文章