我正在尝试创建一个函数,以便=processCells(A1:A10)将接受单元格的范围,并允许我将10加到每一项上,并在单元格A11:A20中显示新的数字。我想使用工作表中的函数,这样用户就可以手动选择单元格A1:A10,这样他们就可以选择B1:B10等。代替A1:A10
我的问题是将工作表的单元格范围传递给一个函数,然后处理它们。
发布于 2011-12-29 08:14:43
下面是一个示例UDF,可以帮助您入门
Function processCells(rng As Variant, Optional AddValue = 10) As Variant
Dim v As Variant
Dim i As Long, j As Long
Select Case TypeName(Application.Caller)
Case "Range"
' Called from a Formula
v = rng
If IsArray(v) Then
' Called from an Array Formula
For j = 1 To UBound(v, 1)
For i = 1 To UBound(v, 2)
If IsNumeric(v(j, i)) Then
v(j, i) = v(j, i) + AddValue
End If
Next i, j
Else
' Called from a single Cell
If IsNumeric(v) Then
v = v + AddValue
End If
End If
processCells = v
Case Else
processCells = vbEmpty
End Select
End Function要按照您所描述的方式使用它,请在单元格单元格A11:A20中将其作为数组公式=processCells(A1:A10)输入
https://stackoverflow.com/questions/8662569
复制相似问题