【发布时间】:2020-08-27 19:56:56
【问题描述】:
我有一个带有产品名称和批号的表格。产品名称是从组合框 frmmaster.cmbproduct 中选择的。 每个产品都有一个唯一的批号组合,并且批号的最后一位会发生变化。 示例表
特定产品的下一个批号是最后一个批号 +1。我在 excel 中使用聚合函数来查找最高的批号。但是相同的聚合函数在 VBA 中会引发错误。
Excel 的聚合函数是 =AGGREGATE(14,4,($B$2:$B$2000 =N12)*$C$2:$C$2000,1) 我在 N12 中输入产品名称。 B列包含产品名称,C列包含批号
暗淡
Dim sh As Worksheet
Set sh = ThisWorkbook.Sheets("Database")
With sh
'On Error Resume Next
res = WorksheetFunction.Aggregate(14, 4, ("R2C2:R2000C2" = FrmMaster.CmbProduct.Value) * "R2C3:R2000C3", 1)
MsgBox (res)
End With
以上代码抛出类型不匹配错误
我已将变量更改为变量和字符串的值,但没有结果。
【问题讨论】:
-
您必须用双引号将要评估的公式字符串中的组合值括起来.....
res = Evaluate("=AGGREGATE(14,4,($B$2:$B$2000 =""" & FrmMaster.CmbProduct.Value & """)*$C$2:$C$2000,1)"):-)