i am using code to count an array.

If I do it this way it works:

Dim vColumnNames As Variant
Dim iElement As Integer

vColumnNames = Array("Invoice Num", "Date", "Ord Num", "Whse Num", "Whse", "Cust Num", _
         "Customer", "Ship to Num", "Ship to", "Sls Num", "SlsPrsn", "Discount", "Item Num", "Product", _
         "Cases", "Units", "Price$", "Del", "Amt", "Total Cost", "Unit Cost", "Profit", "Weight", "Week Num", _
         "Week", "UFN", "Date Filter", "Dept", "Division", "P Cat", "Species", "Country", "S State", "S City", _
         "Group", "Sls Class", "P Man", "2 Man", "Assigned", "Region", "P Status", "Label", "Equiv")

For iElement = LBound(vColumnNames) To UBound(vColumnNames)
        fnCountArray = fnCountArray + 1
    Next iElement
However if I count the array in a separate function and pass the array to it - it does not count it correctly. Here is the code:

vColumnNames = Array("Invoice Num", "Date", "Ord Num", "Whse Num", "Whse", "Cust Num", _
         "Customer", "Ship to Num", "Ship to", "Sls Num", "SlsPrsn", "Discount", "Item Num", "Product", _
         "Cases", "Units", "Price$", "Del", "Amt", "Total Cost", "Unit Cost", "Profit", "Weight", "Week Num", _
         "Week", "UFN", "Date Filter", "Dept", "Division", "P Cat", "Species", "Country", "S State", "S City", _
         "Group", "Sls Class", "P Man", "2 Man", "Assigned", "Region", "P Status", "Label", "Equiv")

fnCountArray vColumnNames


Function fnCountArray(ParamArray vArray() As Variant)

    Dim iElement As Integer

    For iElement = LBound(vArray) To UBound(vArray)
        fnCountArray = fnCountArray + 1
    Next iElement
    
    MsgBox iElement
    
End Function
If I do it as a separate function then it only counts 1. Can someone help?