vba - VBA 功能区栏集成
问题描述
我有一个 Excel 宏,它在文档(创建为表单和一些电子邮件)上执行一些功能,所有这些功能都来自 MS-Word 文档。如果从主电子表格(宏所在的位置)执行宏,则一切正常。我想将此宏放在功能区上,允许用户在没有(或知道主 excel 文档的位置或打开它的位置)的情况下启动它。我创建了一个子来检查电子表格是否已打开并修改功能区以包含宏的图标。
哪个有效。但是,当主 Excel 电子表格未打开时从功能区启动时,它会打开工作簿并完整运行宏(不执行宏的打开工作簿行)。我假设电子表格正在打开,因为被调用的宏与它一起存在(有意义)。由于宏依赖于电子表格中包含的数据,因此我需要允许用户对其进行修改,然后再次从功能区重新运行宏。有没有人有推荐的方法或最佳实践?先感谢您。
Sub MainForm()
Dim WorkingFolder As String
Dim File01 As String 'Main Excel Data File, where all data is
Dim File02 As String 'Preliminary Email to send to user
Dim File03 As String 'Final Email to Send to user when production is complete
Dim wb As Workbook
WorkingFolder = "C:\Temp\"
File01 = "01-MainData.xlsm"
File02 = "02-PreProductionEmail.docx"
File03 = "03-FinalProductionEmail.docx"
If wbIsOpen(File01) = True Then
MsgBox "Workbook Is Open"
Run ("'C:\Users\Guest\Nextcloud\Documents\Excel Forms\02-TEST-Production Request-Data.xlsm'!CreateProductionForm")
Else
MsgBox "The Main Datafile is not open, verify the last row before re-runing", vbOKOnly, "Not Open"
Set wk = Workbooks.Open(WorkingFolder & DataFile)
End If
End Sub
解决方案
Ricardo 提到的指南并不是我所需要的,但它很有帮助,并且确实让我走上了正确的道路。再次感谢里卡多。为了让它工作,我需要做以下事情。
1 - 使上面的过程成为它自己单独的 *.xlam 文件(另存为加载项)。
2 - 添加加载项以通过开发人员选项卡自动启动
3 - 将宏添加到功能区。
我已经修改了上面的示例以包含 open 语句以及从另一个工作簿执行宏的语句。
感谢指导。
推荐阅读
- node.js - 无法安装浏览器同步
- c# - .csproj 的 InstallShield 主要输出具有 apphost.exe 文件
- docker - Docker 查找 auth.docker.io 连接被拒绝错误 17
- react-native - 如何正确使用 react-native 子模块?
- javascript - js中有哪些方法可以调用modules文件夹?
- python - python RSOME中决策变量数组和整数列表的元素乘法
- python - 动画 Python Kivy
- flutter - 未成功将事件添加到日历
- python - 如何使用 XOR 运算符比较二进制字符串的 2 个输入列并将输出分配给新列(熊猫)
- aws-lambda - AWS SQS 列出来自 SDK 的触发器