excel vba-包含()的自定义公式
如果我有这样一个专栏:excel vba-包含()的自定义公式,vba,excel,scripting,Vba,Excel,Scripting,如果我有这样一个专栏: ColumnA ------- NUMBER VARCHAR(50 BYTE) TIMESTAMP 我正在寻找一个vba函数,它的工作原理如下: 包含(“要搜索的字符串”,要在其中搜索的单元格) ie.=包含(“VARCHAR”,A2) 如果单元格中确实包含它(单元格中的任何位置-不必开始或结束单元格),则使用“t”或“F”填充单元格(使用该函数) 在我的例子中: ColumnB ------- F T F 我还可以在其他VBA代码中使用此函数,如: If Len(A
ColumnA
-------
NUMBER
VARCHAR(50 BYTE)
TIMESTAMP
我正在寻找一个vba函数,它的工作原理如下:
包含(“要搜索的字符串”,要在其中搜索的单元格)
ie.=包含(“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代码中使用),请同时提供这两种函数。您需要VBA的
指令
例如,在模块中
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
在工作表中启用
=Contains(“blah”,A1)
,当我在工作表上尝试时,它会出现:#NAME?在单元格中,如果我将代码放入模块(必须是模块),然后在A1中放入“AWA”
,如果我在B2中输入=contains(“W”,A1)
,它将变成T
啊,是的,在模块中它工作。我只在工作表中使用过代码。实际上,我如何在其他vba代码中使用Contains函数?比如,如果Len(A2)>10并且包含(“CHAR”,A2),那么……再次使用instr()<代码>如果Len(范围(“A1”).值)>20,而InStr(1,范围(“A1”).值,“CHAR”,vbTextCompare),则…