【发布时间】:2014-10-26 09:18:44
【问题描述】:
您如何将一系列单元格传递到函数中,以便您可以单独处理这些项目。因此,如何将一系列单元格传递给函数。
我正在尝试这样做,以便我可以有一个使用以下方法的方法
Function processNumbers(Var as Range)
从这里我不确定如何获取列表中的项目数并横穿数组来编辑内容。有没有比上述更好的方法来携带物品。
【问题讨论】:
您如何将一系列单元格传递到函数中,以便您可以单独处理这些项目。因此,如何将一系列单元格传递给函数。
我正在尝试这样做,以便我可以有一个使用以下方法的方法
Function processNumbers(Var as Range)
从这里我不确定如何获取列表中的项目数并横穿数组来编辑内容。有没有比上述更好的方法来携带物品。
【问题讨论】:
您声明的函数是正确的方法。
Function processNumbers(Var as Range) As Variant
NumberOfCells = Var.Cells.Count
NumberOfRows = Var.Rows.Count
NumberOfColumns = Var.Columns.Count
RangeAddress = Var.Address
' Iterate the range (slow)
For Each Cl in Var.Cells
' ...
Next
' Get Values from range as an array
Dim Dat as variant
Dat = var
' Iterate array
For rw = LBound(Dat,1) to UBound(Dat,1)
For col = LBound(Dat,2) to UBound(Dat,2)
' reference Dat(rw,col)
Next col
Nest rw
' Put (modified) values back into range. Note: won't work in a UDF
Val = Dat
End Function
【讨论】:
A3:E3 这样的范围,请以数组公式的形式输入函数:选择范围 A3:E3,输入您的函数,然后按 Ctrl-Shift-Enter(而不仅仅是 Enter ) 结果应该是公式栏中显示的公式应该类似于{=processNumbers(...)}