0

ワークシート「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

動作します。なぜこれが機能するのか、最初のものではなく混乱しています。

4

1 に答える 1

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ます。

于 2013-02-08T17:01:06.103 に答える