为多个用户自动化 Excel VBA 代码更改
Automating Excel VBA Code changes for several users
我创建了一个 Excel 工作簿,其中包含大量幕后代码。有时我需要更新编码。通常,我会创建一个新版本的工作簿并将其保存到每个人的个人网络驱动器中。在理想情况下,他们会按照简单的说明下载新版本并删除旧版本。但当然,这不会发生。此外,我的员工人数在增加,因此为每个团队成员复制这些个人工作簿变得很麻烦。
有没有一种方法可以创建一个程序来更新工作簿中的编码?然后他们应该能够 运行 这个补丁程序来更新他们工作簿中的编码。
对于 Excel 2010,在信任中心,您可以通过单击选项 "Trust access to the VBA project object model" 选择允许以编程方式访问 VBA 对象模型,这是宏设置下的唯一选项>开发人员宏设置。 (需要完全理解的风险,如果您在受控的 IT 环境中操作,可能 运行 违反您组织的安全策略!)
完成后,您可以创建启用宏的工作簿 "patcher" 以打开目标启用宏的工作簿。然后,例如,如果您要在模块级别操作,"patcher" 应用程序可能会执行以下操作以删除旧代码:
yourWorkbook.VBProject.VBComponents.Remove modYourModule
然后通过导入替换模块用新代码更新它:
yourWorkbook.VBProject.VBComponents.Import "c:\Users\Public\yoursource.bas"
希望这能帮助您找到您正在寻找的方向!
我创建了一个 Excel 工作簿,其中包含大量幕后代码。有时我需要更新编码。通常,我会创建一个新版本的工作簿并将其保存到每个人的个人网络驱动器中。在理想情况下,他们会按照简单的说明下载新版本并删除旧版本。但当然,这不会发生。此外,我的员工人数在增加,因此为每个团队成员复制这些个人工作簿变得很麻烦。
有没有一种方法可以创建一个程序来更新工作簿中的编码?然后他们应该能够 运行 这个补丁程序来更新他们工作簿中的编码。
对于 Excel 2010,在信任中心,您可以通过单击选项 "Trust access to the VBA project object model" 选择允许以编程方式访问 VBA 对象模型,这是宏设置下的唯一选项>开发人员宏设置。 (需要完全理解的风险,如果您在受控的 IT 环境中操作,可能 运行 违反您组织的安全策略!)
完成后,您可以创建启用宏的工作簿 "patcher" 以打开目标启用宏的工作簿。然后,例如,如果您要在模块级别操作,"patcher" 应用程序可能会执行以下操作以删除旧代码:
yourWorkbook.VBProject.VBComponents.Remove modYourModule
然后通过导入替换模块用新代码更新它:
yourWorkbook.VBProject.VBComponents.Import "c:\Users\Public\yoursource.bas"
希望这能帮助您找到您正在寻找的方向!