使用Excel 2010.
我需要将代码添加到已重命名ThisWorkbook模块的远程Excel文件中,让我们说"DashboardWorkbook".我不知道新名称,可以是任何东西,但我需要以编程方式识别此模块,以便向Sub Workbook_Open()添加更多代码.
我打开这个远程文件,然后我浏览它的所有组件:
Private Sub AddProcedureToWorkbook(wb As Workbook)
Dim VBProj As VBIDE.VBProject
Dim oComp As VBIDE.VBComponent
Dim oCodeMod As VBIDE.CodeModule
Set VBProj = wb.VBProject
For Each oComp In VBProj.VBComponents
If *[check here if oComp was formerly ThisWorkbook but now renamed]* Then
Set oCodeMod = oComp.CodeModule
'add new code here
...etc, etc
End If
Next
End Sub
Run Code Online (Sandbox Code Playgroud)
在Excel界面中,ThisWorkbook有一个不同的图标,所以它似乎是一个不同的模块类型,但我无法弄清楚要识别的具体属性是什么?
为了使事情复杂化,有时Sub Workbook_Open()不存在,因此我需要在正确的位置添加它...
谢谢,
先生
可以通过代码直接从代码访问表格和书籍CodeName(不同于显示名称Name).
这也是他们的VBComponent名称.
Private Sub AddProcedureToWorkbook(wb As Workbook)
Dim VBProj As VBIDE.VBProject
Dim oComp As VBIDE.VBComponent
Dim oCodeMod As VBIDE.CodeModule
Set VBProj = wb.VBProject
Set oComp = VBProj.VBComponents(wb.CodeName)
Set oCodeMod = oComp.CodeModule
oCodeMod.AddFromString "sub Hi()" & vbNewLine & "msgbox ""Hi.""" & vbNewLine & "end sub"
End Sub
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
516 次 |
| 最近记录: |