2016-01-03 32 views
1

我想問一下關於vba excel,我想填寫多個單元格的公式,但公式包含文本字符串。使用公式填充多個單元格與文本字符串

Sub Test() 

    Dim strFormulas(1 To 2) As Variant 

    With ActiveSheet 
     strFormulas(1) = "=ISNUMBER(SEARCH(Apple,B2))" 
     strFormulas(2) = "=ISNUMBER(SEARCH(Orange,B2))" 

     .Range("C2:D2").Formula = strFormulas 
     .Range("C2:D11").FillDown 
    End With 

End Sub 

在第一我讓這樣的,但因爲當地在沒有文本字符串,這樣的結果全是假的,因爲這個公式應該是=ISNUMBER(SEARCH("Apple",B2))

回答

5
strFormulas(1) = "=ISNUMBER(SEARCH(""Apple"",B2))" 
strFormulas(2) = "=ISNUMBER(SEARCH(""Orange"",B2))" 
+0

啊,這一個工作,感謝 它前類似RY東西 strFormulas(1)= 「= ISNUMBER(SEARCH(」 蘋果 「B2))」 strFormulas(2)= 「= ISNUMBER(SEARCH(」 橙 「B2))」 可以我問爲什麼我們需要兩個「而不是一個?對不起,我還是新的VBA Excel –

+0

@OngokOngoksepen你可以在這裏看到[如何在字符串中加引號](https://msdn.microsoft.com/en-us/library/267k4fw5(v = vs .110).aspx) – Rosetta

+0

非常感謝隊友, –

2

上兼任引號是一個簡單的解決方案,但櫃面你有興趣的另一種方式接近它是使用Chr(34)

Sub Test() 

    Dim strFormulas(1 To 2) As Variant 

    With ActiveSheet 
     strFormulas(1) = "=ISNUMBER(SEARCH(" & Chr(34) & "Apple" & Chr(34) & ",B2))" 
     strFormulas(2) = "=ISNUMBER(SEARCH(" & Chr(34) & "Orange" & Chr(34) & ",B2))" 

     .Range("C2:D2").Formula = strFormulas 
     .Range("C2:D11").FillDown 
    End With 

End Sub 
+0

Ongok,這種做法是我的最愛。它保證了''''字符代碼的'Chr(34)'得到了補充。 – Chrismas007

+0

感謝隊友,非常感謝你給我另一種方法 –

相關問題