VBA宏返回列表中的最小值?
Posted
技术标签:
【中文标题】VBA宏返回列表中的最小值?【英文标题】:VBA macro to return the lowest value in a list? 【发布时间】:2021-12-15 20:44:13 【问题描述】:我正在尝试编写一个 VBA Excel 宏,它将返回列表(C 列)中的最小值并将答案放在单元格“G3”中。
Sub LowestSales2()
Dim c As Range
Set c = Range("C2:C" & Rows.Count)
Range("G3").Value.Low = c
End Sub
【问题讨论】:
@BigBen 抱歉,我附上了我当前的代码,我的主要问题是使用“打印”功能将我的结果放入 G3。当然,当一个简单的 MIN 函数就足够了时,我需要使用宏。 Application.WorksheetFunction.Min 避免在问题中粘贴代码图像。请删除图像。复制并粘贴代码,而不是发布图片。 【参考方案1】:不需要范围。任君挑选……
选项 1
此选项将在单元格G3
中插入一个公式
Option Explicit
Sub Sample()
Dim ws As Worksheet
'~~> Change this to the relevant worksheet
Set ws = ThisWorkbook.Sheets("Sheet1")
ws.Range("G3").Formula = "=MIN(C:C)"
End Sub
选项 2
如果您不需要公式,请使用Evaluate
。
Option Explicit
Sub Sample()
Dim ws As Worksheet
'~~> Change this to the relevant worksheet
Set ws = ThisWorkbook.Sheets("Sheet1")
ws.Range("G3").Value = ws.Evaluate("MIN(C:C)")
End Sub
选项 3
正如雷蒙德建议的那样,使用Application.WorksheetFunction.Min
。此选项将在G3
中插入最小值
Option Explicit
Sub Sample()
Dim ws As Worksheet
'~~> Change this to the relevant worksheet
Set ws = ThisWorkbook.Sheets("Sheet1")
ws.Range("G3").Value = Application.WorksheetFunction.Min(ws.Columns(3))
End Sub
【讨论】:
友情提示:选项 2 可能会产生不需要的结果,因为它不是完全合格的;使用worksheet related evaluation 将是解决此问题的最简单方法:ws.Range("G3").Value = ws.Evaluate("MIN(C:C)")
:-) @SiddharthRout
@T.M.:好点!更新了帖子。谢谢以上是关于VBA宏返回列表中的最小值?的主要内容,如果未能解决你的问题,请参考以下文章
我可以使用 VBA 函数将可接受值的(动态)列表返回到 Excel 的数据验证中吗?