excel 如何在VBA中使用Min If(查找特定条件的最小值)

djmepvbi  于 2023-05-30  发布在  其他
关注(0)|答案(1)|浏览(285)

我想让MsgBox显示状态XXX的最小值。对于下表,我希望看到“3”
我能用这个吗?:

MsgBox "=MINIFS(range("B:B"),range("A:A"),""XXX"")"

| 现状|价值|
| - -----|- -----|
| 色谱柱A| B柱|
| 年|一个|
| XXX|七个|
| 年|4|
| XXX| 3|

MsgBox "=MINIFS(range("B:B"),range("A:A"),""XXX"")"

我希望看到“3”

eivgtgni

eivgtgni1#

如果要在VBA中使用公式,必须通过application.worksheetfunction调用它:

Sub showMinimumValueForStatus(Status As String)

Dim ws As Worksheet
Set ws = ThisWorkbook.Worksheets("Sheet1") '--->> adjust this to your needs

Dim rg As Range
Set rg = ws.UsedRange.Columns("A:B")

Dim x As Long
x = Application.WorksheetFunction.MinIfs(rg.Columns(2), rg.Columns(1), Status)

MsgBox "Minimum value of " & Status & " is " & x

End Sub

此外,您应该始终通过其工作表显式引用范围。否则将引用活动工作表。

相关问题