2017-07-25 51 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”)。Formula =“= 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也适用于此)。或者一些细胞可以被锁定。因此,循环可以帮助你。

相关问题