2015-01-06 191 views
-2

我在Excel宏中編寫了一個VBA腳本。我基本上從行收集數據並將其發佈到RESTful服務。 它適用於我們所有的機器,除了當我們點擊按鈕時什麼也沒有發生。沒有任何錯誤/消息。該代碼駐留在Microsoft Excel對象(在相應的工作表下)。 我抄代碼如下要點:Excel 2010宏不起作用

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
  4. 重新安裝O ffice 2010幾次。

我甚至在我的機器上獲得了管理員權限。 請讓我知道是否需要任何進一步的細節。

幫助!

編輯

我不得不說,這是在Excel宏(VBA)我的第一個編碼經驗。 我已經將我的代碼寫入Microsoft Excel對象(MEO)內的相應工作表中。如果我將它移動到模塊它工作。 在很多機器上(MEO內的代碼)仍然正常工作。爲什麼會這樣?

+0

請問那些能夠降票的人會留下一些評論,因爲這對我們來說顯而易見,爲什麼「值得」被低估,對新用戶而言可能並不那麼明顯。 –

+0

允許在這裏進行故障排除的前兩個步驟:1)請發佈您的代碼(最小化它的樣本); 2)請定義「不工作」,因爲它可能意味着它崩潰,或者什麼都不做,或者其他什麼。謝謝。 –

+0

感謝您的反饋意見。我添加了代碼並定義了我的意思是不工作。 – user2085546

回答

0

這個問題是因爲微軟安全更新由@chrisneisen在評論中共享。

我們有兩類:宏工作的機器(縮寫爲WM)和機器(縮寫爲NWM)。 解決方案是重新編譯NWM上的VB代碼。

我試圖在NWM上重新編譯代碼,但是當我嘗試這樣做時,excel一直在崩潰。因此,我製作了一份工作表副本,將原始工作表重命名爲臨時名稱,並將新複製的工作表重命名爲原始名稱。現在新複製的工作表中的宏已經工作(在WM和NWM中)。 當我試圖刪除原始工作表時,excel再次崩潰,所以我決定只是隱藏它。