2017-07-25 14 views
1

非常に定期的に再利用するコードで上記のエラーが発生しています。私の人生は問題が何であるかを理解できません。VBAでVBAランタイムエラー1004、アプリケーション定義またはオブジェクト定義エラー

ws4.Range("F2:F" & LastRow).Formula = "=IF(D2="", E2, D2)" 

次に、LastRow変数が動作しており、ws4が定義されています。迷っています。

おかげ

+0

ワークシートがロックされているか保護されていますか? –

+1

あなたの 'D2 =" "'は 'D2 =" "" "'ではないでしょうか?また、 'ws4'とは何ですか?ワークシート・オブジェクトである必要があります。 –

+0

これは* single *セルに書き込むことができますか?たとえば、 'ws4.Range(" F2 ")=" IF(D2 = "" "、" E2、D2) "'? –

答えて

0

は、空のExcelシートで次のように試してみてください:

Option Explicit 

Public Sub Test() 

    Dim lastRow  As Long 
    Dim rngCell  As Range 

    lastRow = 5 

    For Each rngCell In ActiveSheet.Range("F2:F" & lastRow) 
     rngCell.FormulaR1C1 = "=IF(1=1,2,3)" 
    Next rngCell 

End Sub 

次にそれとあなたのコードの違いを見てみてください。あなたが正しいシートや他のものを参照していない可能性があります。シートをロックすることもできます(例:1004)。または、いくつかのセルをロックすることができます。したがって、ループはあなたを助けることができます。

関連する問題