网站首页 > 基础教程 正文
参数数组是个名词,实际上也可以反过来称为数组参数,不管怎么叫,这个名称都显得十分不好理解。
本文介绍一下,这个所谓的参数数组是怎么一回事儿。
首先,它是个参数,是个过程或函数定义时用到的一个参数,以数组的形式进行传递,主要是有一个很好的特点,这个数组可以是任意大小,要注意的是这个数组作为参数,一定是最后一个参数。
定义方法:
使用 ParamArray 关键字可表示参数数组。
Sub GetColumnSum(xSheetname as string,ParamArray ColArr() as Variant)
msgbox ubound(ColArr)
End Sub
如下图所示:
调用方法:
GetColumnSum "Sheet1",ColArr(1),ColArr(2)
使用的时候可以任意使用数组元素,而不是整个数组,这样就很方便地提供了一种选择,需要传递数组中的任意一些数组来进行过程操作。
如上图所示,要进行一列数据计算,我们可以把整个列单元做为一个数组进行传递,这样就很方便地进行某一列的数据计算。
代码:
'可以任意传递参数数量 进行过程执行
Sub 参数数组()
Dim xs As String
xs = "Sheet1"
Dim xArr() As Variant
Dim ic As Integer, xi As Integer
ic = ThisWorkbook.Worksheets(xs).Cells(1, Columns.Count).End(xlToLeft).Column
ReDim xArr(1 To ic)
For xi = 1 To ic
Set xArr(xi) = ThisWorkbook.Worksheets(xs).Columns(xi) '返回列对象
Next xi
[e11].Value = 0
[f11].Value = 0
ggetColumnStr xs, xArr(5) '调用第5列 作为参数进行计算
Erase xArr
End Sub
Sub getColumn(xSheetName As String, ParamArray columnArr() As Variant)
'定义数组参数 ParamArray
On Error Resume Next
Dim ci As Integer
For ci = LBound(columnArr()) To UBound(columnArr())
[e11].Value = Application.WorksheetFunction.Sum(columnArr(ci)) '统计和值
[f11].Value = Application.WorksheetFunction.Average(columnArr(ci)) '统计平均值
Next ci
End Sub
参数数组应用具有其灵活性,在一很多应用场境下使用,十分有用,本着灵活使用的结果来考虑,学会其应用方法是一个很好的想法,所以,在此之外,要多练习才是其应用熟练的最好途径。
END
如需要获得免费应用,可以转发或私信联系,将有不错的选择。
猜你喜欢
- 2025-01-12 8个必会的高效提取数字法,你知道几个?
- 2025-01-12 条件太太太太太多怎么求和?教你5招,轻松就搞定
- 2025-01-12 函数公式的左膀右臂:ROW、COLUMN函数知多少
- 2025-01-12 【excel】从现在开始掌握sortby函数,各类排序都不怕!
- 2025-01-12 Vlookup一次性查找多个值,4种方法,你更喜欢哪种?
- 2025-01-12 常用公式,效果挺好
- 2025-01-12 获取列号函数COLUMN的应用技巧
- 2025-01-12 INDEX函数怎么用?两种方法全在这儿
- 2025-01-12 快速查询,INDEX和MATCH函数必须会!
- 2025-01-12 EXCEL:别想得太复杂,动态的职工信息表,用INDEX函数就可搞定
- 01-128个必会的高效提取数字法,你知道几个?
- 01-12条件太太太太太多怎么求和?教你5招,轻松就搞定
- 01-12函数公式的左膀右臂:ROW、COLUMN函数知多少
- 01-12【excel】从现在开始掌握sortby函数,各类排序都不怕!
- 01-12Vlookup一次性查找多个值,4种方法,你更喜欢哪种?
- 01-12常用公式,效果挺好
- 01-12获取列号函数COLUMN的应用技巧
- 01-12INDEX函数怎么用?两种方法全在这儿
- 最近发表
- 标签列表
-
- gitpush (61)
- pythonif (68)
- location.href (57)
- tail-f (57)
- pythonifelse (59)
- deletesql (62)
- c++模板 (62)
- css3动画 (57)
- c#event (59)
- linuxgzip (68)
- 字符串连接 (73)
- nginx配置文件详解 (61)
- html标签 (69)
- c++初始化列表 (64)
- exec命令 (59)
- canvasfilltext (58)
- mysqlinnodbmyisam区别 (63)
- arraylistadd (66)
- node教程 (59)
- console.table (62)
- c++time_t (58)
- phpcookie (58)
- mysqldatesub函数 (63)
- window10java环境变量设置 (66)
- c++虚函数和纯虚函数的区别 (66)