2017-11-10 19 views
1

.xlsb私が持っていないサードパーティのアドインを参照するファイルを受け取りました。スプレッドシートは、シートのいくつかのセルにそのアドの定義された関数を使用し、それらのセルは#NAME?のエラーを持ちます。Excelでユーザー定義関数をモックする方法は?

私は、VBAで同じ名前とパラメータで関数を定義しました。 #NAME?のエラーは依然として続き、セルに「タッチ」すれば動作します。つまり、同じ式をコピー&ペーストします。

既存の機能を置き換える(模倣する)より洗練された方法はありますか?

答えて

0

ブックの手動計算が有効になっていますか?その場合は、自動(Tools> Options> Calculation)に切り替えてみてください。それは、各セルに「触れる」のではなく、再計算を強制することがあります。

2

#NAMEをバイパスするには?エラーが発生した場合は、UDF名を含むすべての式を検索して同じUDF名で置き換えます。

dim myudf as string, w as long 
myudf = "=MyUdf(" 
for w=1 to worksheets.count 
    worksheets(w).cells.replace(what:=ucase(myudf), replacement:=lcase(myudf), _ 
           matchcase:=false, lookat:=xlPart 
next w 
+0

これは、本質的に「接触」ビットを自動化します。私はかなりの人々のための解決策としてこれを提案しなければならないでしょう、これが正しいことであることを確認する参考資料がありますか? – Kimi

関連する問題