我正在尝试组合一个用户定义的函数,它允许excel函数在一个范围内工作,而不仅仅是一个单元格。示例将是=isnumber(value)
该函数不能在一系列单元格中起作用,因此要使用它来检查我需要为该范围中的每个单元格重复它的范围。
是否有人试图将=RangeFunct(range, function,[boolean])
的内容放在一起?这将沿着循环线到达现有函数的范围内的每个单元格,并停止与所选择的布尔值不匹配的布尔值。任何有关设置此代码的帮助都将不胜感激。
答案 0 :(得分:2)
例如:=RangeFunc(A1:A10,"ISNUMBER")
Function RangeFunc(rng As Range, funct As String) As Boolean
Dim c As Range
Dim rv As Boolean
rv = True
For Each c In rng.Cells
If rng.Parent.Evaluate(funct & "(" & c.Address() & ")") = False Then
rv = False
Exit For
End If
Next c
RangeFunc = rv
End Function
你总是可以使用数组公式代替:
=AND(ISNUMBER(A1:A10))
...使用Ctrl + Shift + Enter
输入答案 1 :(得分:0)
像这样简单的东西可以让你将一个范围定义为一个字符串(即“A1:B10”),然后循环遍历该范围内的每个单元格。对于每个单元格,您可以测试条件,修改该单元格(突出显示或注意它),等等。这是一个非常简单的示例:
Public Function RangeFunct(ByVal myRange As String) As Boolean
Dim cell As Range
Dim checkRange As Range
Set checkRange = Range(myRange)
Dim bTemp As Boolean
bTemp = True
For Each cell In checkRange
If cell.Value = 1 Then
bTemp = False
Exit For
End If
Next cell
RangeFunct = bTemp
End Function
如果您可以更具体地了解要测试的内容以及如何使用它,那么我可以修改代码以满足您的需求。