Excel宏来更新宏

时间:2014-11-26 11:53:36

标签: excel excel-vba vba

我有一个场景。我正在使用一组excel文件进​​行报告。所有这些excel都是宏启用的,并具有连接到服务器的“登录”功能。要解决安全问题,我们必须更新“登录”功能。 有没有办法在所有这样的excel文件中编写一个宏来替换这个函数?基本上是宏来更新宏!!

2 个答案:

答案 0 :(得分:1)

启用宏安全选项:

enter image description here

然后你需要这样的代码:

Sub AddMacro()

    Dim xlbook As Workbook
    Set xlbook = ActiveWorkbook 'Assign workbook to have macro added here

    Dim xlmodule As Object
    Set xlmodule = xlbook.VBProject.VBComponents.Add(1)

    Dim strCode As String
    strCode = _
       "Function MyFunction()" & vbCr & _
       "'some function code here" & vbCr & _
       "End Function"
    xlmodule.CodeModule.AddFromString strCode

End Sub

答案 1 :(得分:0)

过去我遇到过类似的问题。基本上需要在新费率进入时向所有用户更新功能。

我的解决方案是使用.xlam文件,基本上在用户重启计算机时推送更新。

如果您没有多个用户,只需在宏中将模块放在" PERSONAL.XLSB"中,就只需要更新该宏,然后该宏将适用于每个工作簿。