Excel 2010 宏不工作

Excel 2010 Macro doesnt work

我在 Excel 宏中写了一个 VBA 脚本。我基本上从行中收集数据并将其发布到 RESTful 服务。 它适用于我们所有的机器,除了当我们点击按钮时没有任何反应的机器。没有任何类型的 errors/messages。 代码位于 Microsoft Excel 对象中(在相应的工作表下)。 我复制了下面的代码要点:

Const url As String = "https://xx.yy.com"
Const token As String = "aaaa"

Private Sub CommandButton1_Click()
 LoadXX
End Sub


Function LoadXX()

    Dim xChild1, xChild As MSXML2.IXMLDOMNode
    Dim zipResult As New MSXML2.DOMDocument
    Dim zipService As New MSXML2.XMLHttp
    Randomize       
    random_number = Int(99999999 * Rnd) + 1
    Query = url & "callService?sessionId=" & random_number      
    zipService.Open "GET", Query, False
    zipService.setRequestHeader "X-Access-Token", token
    On Error GoTo ThereWasBadConnection
    zipService.send
    zipResult.LoadXML (zipService.responseText)
End Function

我已经完成了通常的步骤,例如:

  1. 在信任中心设置中选择启用所有宏
  2. 在信任中心设置中启用对 VBA 项目对象模型的信任访问
  3. 在控制面板 -> 程序和功能 -> Microsoft Office 2010 中选择 'Run all from my Computer'
  4. 重新安装 Office 2010 几次。

我什至在我的机器上获得了管理员权限。 如果需要任何进一步的详细信息,请告诉我。

求助!

编辑

我不得不说这是我第一次使用 Excel 宏 (VBA) 进行编码。 我已经在 Microsoft Excel Objects(MEO) 的相应工作表中编写了我的代码。如果我将它移动到模块,它就可以工作。 在很多机器上它(MEO 内的代码)仍然可以正常工作。为什么会出现这种行为?

问题是由于 @chrisneisen 在评论中分享的 Microsoft 安全更新。

我们有两类:可以使用宏的机器(缩写为 WM)和不能使用宏的机器(缩写为 NWM)。 解决方法是在NWM上重新编译VB代码。

我尝试在 NWM 上重新编译代码,但是 excel 尝试这样做时一直崩溃。因此,我复制了一份工作表,将原始工作表重命名为临时名称,并将新复制的工作表重命名为原始名称。现在新复制的工作表中的宏起作用了(在 WM 和 NWM 中)。 当我试图删除原始工作表时,excel 再次崩溃,所以我决定简单地隐藏它。