我有一个数组,在 A 列中列出了不同的文章名称。现在我想将与其中一些文章名称对应的值相加。由于文章名称的数量不是恒定的,因此我将名称作为 ParamArray 传递。
所有这些都适用于 ParamArray 末尾的元素,但是当我尝试查找放置在 ParamArray(0) 中的文章编号的行时,会出现错误消息“对象变量或未设置块变量”。尽管如此,访问 ParamArray(0) 没有问题,但 Vba 拒绝找到相应的行。
这是调用该函数的代码(col_ML 是相加的值的列):
.Cells(63, col_year).Value = Compute_sum_ML(col_ML, "17.8.32.000", "17.8.42.000")
这是函数本身:
Function Compute_sum_ML(col_ML As Integer, ParamArray article() As Variant) As Double
Dim row_article As Integer
Dim result As Double
row_article = 0
result = 0
For i = 0 To UBound(article, 1)
row_article = d_ML.Range("A:A").Find(What:=article(i),LookIn:=xlValues).row
If row_article <> 0 Then
result = result + d_ML.Cells(row_article, col_ML).Value
End If
Next i
Compute_sum_ML = result
End Function
我还尝试将 ParamArray 定义为字符串,因为只有字符串会传递给它,但它迫使我将其定义为变体。