我正在寻找使用Excel VBA查找非连续范围的最小值。范围为非连续是因为我希望用户能够选择范围。不幸的是,我还没有找到适合我情况的解决方案。
具体而言,对于以下两组数据,用户可以选择A1:A5单元格,然后按下Control键,再选择A7:A11单元格。该宏应返回所选列B中所有单元格的列C中的最小值(在本例中为所有单元格)。
以下是我一直在使用的内容,但它只返回范围第一个连续部分的最小值。
MsgBox只是为了验证所选范围是否正确。看起来它是正确的($A1:$A5,$A7:&A11)。输出在“summary”工作表中,仅返回第一组数据的最小值0.10。结果应该是0.05(单元格B7)。 我考虑运行一个循环来找到范围的每个部分的最小值,但我不确定如何拆分“Selection.Address”。有人有建议吗?如何让宏返回非连续范围的最小值?
具体而言,对于以下两组数据,用户可以选择A1:A5单元格,然后按下Control键,再选择A7:A11单元格。该宏应返回所选列B中所有单元格的列C中的最小值(在本例中为所有单元格)。
A B
1 1 0.1
2 2 2.0
3 3 3.0
4 4 4.0
5 5 5.0
6 6 0.05
7 7 0.2
8 8 0.3
9 9 0.4
10 10 0.5
以下是我一直在使用的内容,但它只返回范围第一个连续部分的最小值。
Sub testa()
Dim RngA, out As Range
Dim MSA As Single
Set RngA = Range(Selection.Address)
MsgBox RngA.Address
MSA = WorksheetFunction.Min(RngA.Offset(0, 1).Value)
Set out = Worksheets("summary").Range("C13")
out = MSA
End Sub
MsgBox只是为了验证所选范围是否正确。看起来它是正确的($A1:$A5,$A7:&A11)。输出在“summary”工作表中,仅返回第一组数据的最小值0.10。结果应该是0.05(单元格B7)。 我考虑运行一个循环来找到范围的每个部分的最小值,但我不确定如何拆分“Selection.Address”。有人有建议吗?如何让宏返回非连续范围的最小值?