在工作表'hitterscalc'单元格d2中,如果'hitterscalc'单元格中的值ab2 = 1
,我想粘贴工作表'batters'单元格ks2的值我认为想要对工作表'hitterscalc'中包含数据的所有行执行此操作
我想出了
With Worksheets("Hitterscalc")
With .Range("d2:d" & .Range("a" & Rows.Count).End(xlUp).Row)
.Formula = "=IF($AB2=1,Batters!KS2,""))"
.Value = .Value
End With
End With
但正在返回应用程序定义或对象定义的错误。
有人能指出我正确的方向来解决这个问题吗?
编辑:
所以当我做的时候
With Worksheets("Hitterscalc")
With .Range("d2:d" & .Range("ab" & Rows.Count).End(xlUp).Row)
.Formula = "=Batters!KS2"
.Value = .Value
End With
End With
表达式正常。我怎样才能得到它以便它首先检查工作表hitterscalc列ab的单元格值?
编辑2
With Worksheets("Hitterscalc")
With .Range("d2:d" & .Range("ab" & Rows.Count).End(xlUp).Row)
.Formula = "=IF(AND(A2<>"""",AB2=1),Batters!KS2,"""")"
'.Formula = "=Batters!KS2"
.Value = .Value
End With
End With
的工作原理。我很困惑为什么这个有效,但不是第一个。
答案 0 :(得分:0)
我认为混淆是因为引用 - 尝试使用此代码:
With Worksheets("Sheet1")
With .Range("d2:d" & .Range("ab" & Rows.Count).End(xlUp).Row)
r = "=IF($AB2=1,Batters!KS2," & Chr(34) & Chr(34) & ")"
.Formula = r
.Value = .Value
End With
End With
使用Chr(34)
为IF
中使用的双引号生成公式字符串。