我正在尝试组合一个用户定义的函数,该函数将允许 excel 函数在一个范围内工作,而不仅仅是一个单元格。示例是=isnumber(value)
该函数不适用于一系列单元格,因此要使用它来检查一个范围,我需要为该范围内的每个单元格重复它。
有没有人试过把一些东西放在一起=RangeFunct(range, function,[boolean])
?这将沿着循环通过范围中的每个单元格进入现有函数并停止在与选定的布尔值不匹配的布尔值处执行一些操作。任何有关设置此代码的帮助将不胜感激。
我正在尝试组合一个用户定义的函数,该函数将允许 excel 函数在一个范围内工作,而不仅仅是一个单元格。示例是=isnumber(value)
该函数不适用于一系列单元格,因此要使用它来检查一个范围,我需要为该范围内的每个单元格重复它。
有没有人试过把一些东西放在一起=RangeFunct(range, function,[boolean])
?这将沿着循环通过范围中的每个单元格进入现有函数并停止在与选定的布尔值不匹配的布尔值处执行一些操作。任何有关设置此代码的帮助将不胜感激。
例如: =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 输入
像这样简单的东西可以让您将范围定义为字符串(即“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
如果您可以更具体地了解您想要测试的内容以及您想要如何使用它,那么我可以修改代码以满足您的需求。