[英]Create a function in Excel VBA to test if a cell contains a certain character
I'm looking to create a function in Excel/VBA that will look at a range of cells and return a value of TRUE if any of the cells contains a certain character (an asterisk *). 我正在寻找在Excel / VBA中创建一个函数,该函数将查看一系列单元格,如果任何单元格包含某个字符(星号*),则返回TRUE值。 There will be some blank cells, some cells will contain text and some may contain text and an asterisk.
将有一些空白单元格,一些单元格将包含文本,一些单元格可能包含文本和一个星号。 Can anyone help?
有人可以帮忙吗? Many thanks
非常感谢
Copy and paste the below code into a new module 复制以下代码并将其粘贴到新模块中
Function ContainsStar(r As Range) as Boolean
Dim i As Long
Dim cell As Range
Dim contains As Boolean
For Each cell In r.Cells
For i = 1 To Len(cell)
If Right(Left(cell, i), 1) = Chr(42) Then
contains = True
GoTo ExitFn
End If
Next i
Next
Exit Function
ExitFn:
ContainsStar = contains
Exit Function
End Function
then use it in the spreadsheet like this 然后像这样在电子表格中使用它
Note: 注意:
D1 = =ConstainsStar(A1:A3)
D1 =
=ConstainsStar(A1:A3)
H1 = =ConstainsStar(E1:E3)
H1 =
=ConstainsStar(E1:E3)
you can also use the instr function 您还可以使用instr函数
function containstar(byval r as range) as boolean
dim cel as range 'be careful about variable names that are already existing code (cell)
for each cel in r.cells
'or use a loop like: for i=1 to r.cells.count , and use r.cells(i), if you prefer.
if instr(1,cel.value,"*")>0 then
containstar=true
exit sub 'you can also exit for
end if
next cel
containstar=false
end sub
and to call the function: 并调用该函数:
a=containstar("a1:b8")
use only goto when you cannot do else, usually you don't need it. 仅在无法执行其他操作时才使用goto,通常不需要。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.