2011-03-31 48 views
3

在Excel 2003 SP2XLL和vba函數名稱衝突導致永久#NAME?錯誤

  • XLL定義xll_function 如果我叫它,它工作正常。

  • 定義了一個名稱相同的VBA函數:它優先於XLL的xll_function。

  • VBA函數被刪除,#NAME?出現並永遠保持。 這不利於在另一個excel版本或安全模式下保存工作簿。

即使VBA函數已經消失,Excel仍然記得查看VBA。 任何有關如何解決這個問題的建議?

+0

如果您導出VBA模塊然後重新導入它們會怎麼樣?我假設你已經嘗試刪除使用該函數的公式,然後恢復它們。並嘗試做全樹recalc等 – jtolle 2011-03-31 17:18:55

+0

你應該接受你自己的答案,以表明你的問題現在已經解決。 – 2011-04-08 12:19:57

回答

0

最後,我從一箇舊的電子表格開始中,轉移我的模塊和板材它...是我能找到

的唯一途徑
+1

如果您嘗試過Charles的解決方案,我很好奇,因爲我很想知道這是否可行。 – jtolle 2011-04-01 18:21:41

2

嘗試定義一個定義的名稱相同的功能,然後將其刪除

+0

在Excel 2003中工作。 – AnotherParker 2014-09-03 14:27:23

1

當涉及到鏈接包含在VBA,XLA [M]或XLL中的UDF時,Excel有一個非常奇怪的行爲。

通常,在編輯工作簿時,VBA UDF優先於XLA [M]/XLL中的工作簿,並且這是鏈接並保存在工作簿中的工作簿。

但是,當您打開工作簿時,Excel將首先查找XLA [M]/XLL中的UDF,然後再查看同一工作簿的VBA部分中的UDF。可能這是因爲VBA UDF尚未被Excel所知,但XLA [M]/XLL中已有的是,而且工作簿將與後者永久鏈接。

可能您不會理解哪一個被調用,除非您將工作簿移動到XLA [XL]/XLL不可用的PC。此時,最可能的結果是您單元格中的「#NAME」或「#VALUE」。

我的建議是避免在不同供應商中對UDF使用SAME名稱時不明確。