2013-02-08 82 views
0

在工作表「hitterscalc」 D2單元格,我想粘貼工作表「麪糰」細胞KS2的值,如果在「hitterscalc」細胞AB2 = 1VBA Excel 2007中轉移一個細胞的一個條件值

i的值認爲要做到這一點對所有的i都拿出了,在工作表「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

我會使用'爲每個細胞'建設。 – 2013-02-08 16:11:30

+0

即時對不起,我是新手,雖然我明白你的建議背後的想法,實施它是我的把握。我正在嘗試在我的另一個函數中調整預先存在的代碼。你碰巧知道爲什麼它不會工作? – kamelkid2 2013-02-08 16:43:57

+0

我想我得到了線索 - 請參閱下面的答案。 – 2013-02-08 17:02:03

回答

0

我覺得困惑是因爲引號的 - 嘗試使用此代碼:使用Chr(34)IF使用雙引號產生

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 

公式字符串。