2011-09-03 63 views
1

如果我有像柱:Excel VBA中 - 自定義公式中包含()

ColumnA 
------- 
NUMBER 
VARCHAR(50 BYTE) 
TIMESTAMP 

我正在尋找一個VBA函數,將工作像這樣:

包含(「要搜索的字符串for「,cell來搜索它) 即。 = contains(「VARCHAR」,A2) 並且如果單元格包含它(單元格中的任何位置 - 不必開始或結束單元格),則使用「T」填充單元格(使用該函數)否則「 F」。

所以在我的例子:

ColumnB 
------- 
F 
T 
F 

也可能我再使用這個函數內其他VBA代碼如下所示:

If Len(A2) > 10 and contains("CHAR",A2) Then 
//do stuff 
End If 

如果他們必須是獨立的功能(在電池使用返回「T」/「F」並用於其他VBA代碼),請提供兩者。

回答

3

你想VBA的InStr

例如在模塊中;

Public Function Contains(Text As String, Cell As Range) As String 
    If InStr(1, Cell.Value, Text, vbTextCompare) Then '//case insensitive 
     Contains = "T" 
    Else 
     Contains = "F" 
    End If 
End Function 

使工作表中的

+0

=Contains("blah", A1)當我嘗試在它出現一個工作表:#NAME?在單元格 – toop

+0

如果我把這個代碼放在一個模塊中(必須是一個模塊),那麼在A1中放入'「AWA」'如果我在B2中輸入'= contains(「W」,A1)',它會變成'T' –

+0

啊,是在一個模塊工作。我曾經只有代碼片。 – toop