2016-01-03 30 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

感谢队友,非常感谢你给我另一种方法 –

相关问题