【发布时间】:2021-10-18 02:18:21
【问题描述】:
我需要一个 VBA 代码来搜索特定名称(第一个下拉菜单)、产品(第二个下拉菜单),然后返回单价。我可以使用 VLOOKUP 搜索名称并返回单价,但我需要搜索名称和产品并能够快速拉出价格。我使用了 Evaluate 函数,但结果是#VALUE!
Sub unitPrice()
Set sh4 = ThisWorkbook.Sheets("Invoice")
Set sh5 = ThisWorkbook.Sheets("Unit Price")
sh4.Range("H18") = _
sh4.Evaluate("MATCH(" & sh4.Cells(11, 1).Address(False, False) _
& "&" & sh4.Cells(18, 1).Address(False, False) _
& ",'Sh5!B2:B5&sh5!A2:A5,0)")
End Sub
【问题讨论】:
-
'Sh5!必须是'Unit Price'! -
无需使用 VBA。假设名称为 B5:B44,产品为 C5:C44,价格为 D5:D44,然后将 DataValidation 放入 H4(名称)和 DataValidation H5(产品)。现在在 H6 中输入代码:“ {=INDEX(D5:D44, -5+MAX((B5:B44=$H$4)*(C5:C44=$H$5)*ROW(C5:C44)))} " 并按 ctrl+sht+enter(作为数组公式输入)。好了,工作完成了……
-
@rory 谢谢,我更正了它,但我认为我的代码完全错误,因为它没有给我一个单价。比赛确实有效,但我需要从
vba 'sh5'!C2:C5返回单价 -
@Apostolos55 我需要一个 VBA 代码,因为稍后我可能需要更改单价并将其从发票表再次复制回单价表