3

Excel2003sp2で

  • XLLはxll_functionを定義します。私がそれを呼び出すと、それは正常に機能します。

  • 同じ名前のVBA関数が定義されています。XLLのxll_functionよりも優先されます。

  • VBA関数が削除されました。#NAME?現れて永遠にとどまります。別のExcelバージョンまたはセーフモードでブックを保存することは役に立ちません。

VBA機能がなくなったとしても、ExcelはVBAを確認することを覚えています。それを解決するために何をすべきかについての提案はありますか?

4

3 に答える 3

2

関数と同じ定義名を定義してから削除してみてください

于 2011-03-31T21:15:36.580 に答える
1

VBA、XLA[M]、または XLL に含まれる UDF をリンクする場合、Excel は非常に奇妙な動作をします。

一般に、ワークブックの編集中は、VBA UDF が XLA[M]/XLL の UDF よりも優先され、これがリンクされ、ワー​​クブックに保存されます。

ただし、ブックを開くと、Excel は最初に XLA[M]/XLL で UDF を検索し、次に同じブックの VBA セクションを検索します。おそらく、VBA UDF は Excel にはまだ認識されていませんが、XLA[M]/XLL の UDF は既に認識されており、ブックは後者に永続的にリンクされます。

おそらく、XLA[M]/XLL が利用できない PC にワークブックを移動しない限り、どちらが呼び出されたのか理解できないでしょう。その時点で、最も可能性の高い結果は、セル内の「#NAME」または「#VALUE」です。

私の推奨事項は、異なるプロバイダーでUDFに同じ名前を決して使用しないことで、あいまいさを避けることです。

于 2012-05-10T13:52:57.757 に答える
0

結局、私は古いスプレッドシートから始めて、自分のモジュールとシートをそれに転送しました...それが私が見つけることができた唯一の方法でした

于 2011-04-01T08:14:32.290 に答える