參數數組是個名詞,實際上也可以反過來稱為數組參數,不管怎麼叫,這個名稱都顯得十分不好理解。
本文介紹一下,這個所謂的參數數組是怎麼一回事兒。
首先,它是個參數,是個過程或函數定義時用到的一個參數,以數組的形式進行傳遞,主要是有一個很好的特點,這個數組可以是任意大小,要注意的是這個數組作為參數,一定是最後一個參數。
定義方法:
使用 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
如需要獲得免費應用,可以轉發或私信聯系,将有不錯的選擇。
,