Excel (VBA)

Excel VBAに関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(Windows 11 Pro : Microsoft 365)
IFERRORでエラーの時に文字を表示したいのにアプリケーションエラー(1004)になってしまう
投稿日時: 24/03/12 17:38:23
投稿者: おばちゃん

 wsW.Range("K3:K" & lngEndRow).Formula = "=IFERROR(VLOOKUP($U3,'SAP7400'!A:L,12,FALSE),'#')"
このコードを実行したら、アプリケーションエラーになって止まってしまいます。
 wsW.Range("K3:K" & lngEndRow).Formula = "=IFERROR(VLOOKUP($U3,'SAP7400'!A:L,12,FALSE),0)"
数字にしたらエラーになりませんが、
wsW.Range("K3:K" & lngEndRow).Formula = "=IFERROR(VLOOKUP($U3,'SAP7400'!A:L,12,FALSE),'NA')"
文字列を返すようにした場合にエラーになります。
何が原因かわかりません。教えてください。
書式設定は標準です。

回答
投稿日時: 24/03/12 18:05:49
投稿者: sk

引用:
wsW.Range("K3:K" & lngEndRow).Formula = "=IFERROR(VLOOKUP($U3,'SAP7400'!A:L,12,FALSE),'#')"

数式における文字列リテラルの囲み記号が誤っているため。
 
-----------------------------------------------------------------
 
wsW.Range("K3:K" & lngEndRow).Formula = "=IFERROR(VLOOKUP($U3,'SAP7400'!A:L,12,FALSE),""#"")""
 
-----------------------------------------------------------------

投稿日時: 24/03/13 09:20:00
投稿者: おばちゃん

ありがとうございました。
ダブルクォーテーションの中の文字列を入力するときは'#'シングルクォーテーションに変えると思っていました。ダブルクォーテーションを二つですね。
ちゃんと動きました。助かりました。