簡體   English   中英

VBA Excel 2007中轉移條件的單元格的值

[英]VBA excel 2007 Transfer a Cell's value with a condition

在工作表'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

作品。 我對為什么這個有效但為什么第一個無效感到困惑。

我認為造成混淆的原因是引號-嘗試使用以下代碼:

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使用的雙引號生成公式字符串。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM