2016-12-11 35 views
0

我的代碼同時使用引號與變量只是這個在FormulaR1C1

Sub Macro2() 
Dim X As Variant 
X = "3.7" 
Range("O36").FormulaR1C1 = "=SUM(COUNTIF(INDIRECT({""C9:C34"",""F9:F34""}),"">=""" & Chr(34) & X & Chr(34) & "))" 
MSGBOX "Total " & Range("O36").Value & " elements Standard Volts are Greater or Equal to " & X & " Volts" 
End Sub 

我已經試過的"" &但無濟於事各種組合。上面的代碼的輸出是

= SUM(COUNTIF(INDIRECT({ 「C9:C34」, 「F9:F34」}), 「> =」, 「3.7」))

但粗的它將工作僅當它是

= SUM(COUNTIF(INDIRECT({ 「C9:C34」, 「F9:F34」}), 「> = 3.7」))

+0

獲取在X –

+0

之前擺脫了chr(34)或者將「」> =「」「改爲」「> =」 –

回答

0

要正確簡單地編寫這種類型的字符串,請執行以下操作:

01雙擊它

Range("O36").FormulaR1C1 = "=SUM(COUNTIF(INDIRECT({"C9:C34","F9:F34"}),">=3.7"))" 

2)"的開始和結束的人簡單的make之間的每一次亮相,是這樣的:

1)寫出你希望它是在最後的方式,字符串,例如:

Range("O36").FormulaR1C1 = "=SUM(COUNTIF(INDIRECT({""C9:C34"",""F9:F34""}),"">=3.7""))" 

就是這樣!!!!

+0

但是似乎有一個希望來自op不要硬編碼3.7並在那裏使用變量的值。 –

+0

是的,我知道,但想法是演示如何正確處理由雙引號分隔的字符串中的雙引號。是的,我假設OP會知道如何在中間使用變量。 – FDavidov

0

可能是一個更直接的方法(雙關語意)更容易:

Range("O36").Formula = Replace("=SUMPRODUCT((C9:C34>=?)+(F9:F34>=?))", "?", X) 

也許

Range("O36").ArrayFormula = Replace("=SUM((C9:C34>=?)+(F9:F34>=?))", "?", X) 

您還可以得到結果,而無需使用範圍:

result = Evaluate(Replace("SUMPRODUCT((C9:C34>=?)+(F9:F34>=?))", "?", X)) 
相關問題