是否有方法从网络位置导入Excel模块(VBA)?

是否有方法从网络位置导入Excel模块(VBA)?,excel,vba,module,Excel,Vba,Module,是否有办法在打开时将整个子模块/函数导入excel工作簿?其想法是让旧工作簿在打开时导入新代码,而无需始终进入“开发”选项卡并粘贴新代码 代码当前位于*.txt文件中 多亏了Mathieu Guindon我才知道 Private Sub Auto_Open() CreateModule "Module2", "your\file\path.txt" End Sub Public Sub CreateModule(ByRef ModuleName As String, ByRef Code

是否有办法在打开时将整个子模块/函数导入excel工作簿?其想法是让旧工作簿在打开时导入新代码,而无需始终进入“开发”选项卡并粘贴新代码

代码当前位于*.txt文件中

多亏了Mathieu Guindon我才知道

Private Sub Auto_Open()
  CreateModule "Module2", "your\file\path.txt"
End Sub


Public Sub CreateModule(ByRef ModuleName As String, ByRef CodeFileName As String)

  Const vbext_ct_StdModule = 1
  Dim vbComp As Object
  Set vbComp = ModuleName
  Application.VBE.ActiveVBProject.VBComponents.Add(vbext_ct_StdModule)
  vbComp.Name = ModuleName
  vbComp.CodeModule.AddFromFile (CodeFileName)

End Sub

如果必须更新模块,为什么不能更新整个工作簿?代码是标准模块吗?班级模块?表格?某些工作表的代码隐藏?
Set component=Application.VBE.ActiveVBProject.VBComponents.Add(vbext\u ct\u StdModule)
添加新的std模块,然后
component.codemule.AddFromFile(path)
加载文本文件。需要引用VBE扩展性API,这需要明确信任VBIDE API,允许VBE执行修改和生成代码的代码,这可能是您的IT部门可以接受的,也可能不是。虽然不确定它是否支持UNC路径。我可以更新每个路径的模块,但不同用户使用的不同工作簿有几十种,它们都使用相同的代码。每次有更新或bug修复时都这么做是非常乏味的。谢谢Mathieu,我会试试的。它是取代我的模块,还是添加到模块中?