0

在工作表“hitterscalc”单元格 d2 中,如果“hitterscalc”单元格 ab2 中的值 = 1,我想粘贴工作表“击球手”单元格 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

作品。我很困惑为什么这个有效,但不是第一个。

4

1 回答 1

0

I think the confusion is because of quotes - try to use this code:

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

Formula string is generated using Chr(34) for double quotes used in IF.

于 2013-02-08T17:01:06.103 回答