2013-04-23 89 views
2

我在將VBA的Excel 2010電子表格部署到客戶端時遇到問題。他們報告了以下錯誤:「運行時錯誤'1004':對象'_Application'失敗'的方法'名稱'。 Screenshot對象'_Application'的方法'名稱'失敗

的地方失敗代碼中的相關部分如下:

Dim settings as Range 
Set settings = Application.Names("basictags").RefersToRange 

名稱「basictags」在電子表格中肯定存在(並能正常工作在我結束),所以我想它與客戶端啓用的保護模式有關。但是,他們已經證實,當Excel顯示保護模式警告時,他們點擊「啓用」按鈕,所以我不確定還有什麼可能導致它。

+0

真的很奇怪,它會報告「_Application」。下劃線表示您沒有限定引用,就像您使用沒有Application限定符的'Names(「basictags」)'一樣,它必須使用名稱的默認父級。但默認的父項是Workbook,而不是Application。名稱問題通常與範圍有關,但我可以重現這一點。 – 2013-04-23 21:20:33

+0

似乎這個Excel實例不喜歡全局命名空間......由dotNet提出的修正ThisWorkbook的問題修正了原始錯誤,但現在使用Sheets()調用,客戶端報告「Method'Sheets'object' _Global'失敗「 – user2312119 2013-04-25 13:19:18

回答

3

嘗試Application.ThisWorkbook.Names而不是Application.Names

+0

謝謝,這解決了錯誤,但你能解釋爲什麼嗎?我的客戶正在嘗試使用Sheets()函數報告類似的錯誤。 – user2312119 2013-04-25 13:06:17

+0

'names'對應於工作簿的__named ranges__,這個功能也可以直接在Excel中使用(您可以選擇一個範圍,爲其定義一個名稱,然後在公式中使用該名稱而不是範圍地址)。所以你可以想象在對象模型中,這個屬性在邏輯上應該是'Workbook'對象的一部分,而不是'Application'對象。 – dotNET 2013-04-25 16:40:49

+0

@ user2312119:當一個答案適用於你,接受它不僅有助於回答好友,也有助於未來的訪問者。 – dotNET 2017-01-05 12:14:27

相關問題