查找长度变化的单元格范围的最小/最大/平均值等?



当我不知道范围的结束时,我想在电子表格中找到一个单元格范围的最小/最大/平均值等。

在我的宏中我使用了以下代码:

Raw1.Range("H4").Value = Application.WorksheetFunction.Max(Range(Sheets("Raw").Range("A3"), Sheets("Raw").Range("A3").End(xlDown)))

我想用different than this,因为这给了"一个值"。每次运行代码。

我希望H4的值在每次A3的值变化时都改变,而不必运行宏。所以更像是一个公式。

类似:

Raw1.Range("H3").Value = "= Min((A3:A & Range.End(xlDown).Row))"

由于您不希望主动运行宏,因此下面的建议在Worksheet_Change()事件过程中编码:

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Application.Intersect(Range("A:A"), Target) Is Nothing Then
If Target.Cells.Count > 1 Then Exit Sub
Dim lastCell As Long, pos As Long, formulaCell As Range
Set formulaCell = Range("H4")
lastCell = Cells(Rows.Count, 1).End(xlUp).Row
pos = InStr(1, formulaCell.Formula, "(") - 1
formulaCell.Formula = Left(formulaCell.Formula, pos) & "(A2:A" & lastCell & ")"
End If
End Sub

它以OP中的示例为前提,因为有问题的单元格包含一个简单的公式(即引用单元格的地址在现有公式的第一个(之后,并且除了此引用之后的)之外什么都没有),每当检测到列a中的变化时,事件过程将更新的范围引用。

最新更新