我有一个列(D)计算它旁边两列的平均值(B,C)。当需要对B或C进行更改时,我需要按照降序自动对D列中公式的结果进行排序.D列D单元格包含公式= IFERROR(C2 / B2,0)
B和C通过添加其他工作表数据的公式进行更新。
a b c d
5L2R 1 0 0%
5R2T 2 0 0%
5P1V 1 1 100%
611Q 1 1 100%
5I31 1 1 100%
5N32 1 1 100%
642O 1 1 100%
我尝试了其他类似帖子的各种不同代码,但没有任何工作。
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Not Intersect(Target, Range("D:D")) Is Nothing Then
Range("D1").Sort Key1:=Range("D2"), _
Order1:=xlAscending, Header:=xlYes, _
OrderCustom:=1, MatchCase:=False, _
Orientation:=xlTopToBottom
End If
End Sub
答案 0 :(得分:0)
边缘,
您需要提供一些更多信息,并且您不想检查D列中的更改,而希望检查它依赖于其输入(B和C)的列。
Private Sub Worksheet_Change(ByVal Target As Range)
Dim lLastRow As Long
If Not Intersect(Target, Range("B:C")) Is Nothing Then
lLastRow = [A1].End(xlDown).Row
With ActiveWorkbook.Worksheets("Sheet1").Sort
.SortFields.Clear
.SortFields.Add2 Key:=Range("D1:D" & lLastRow), _
SortOn:=xlSortOnValues, _
Order:=xlAscending, _
DataOption:=xlSortNormal
.SetRange Range("A1:D" & lLastRow)
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
End If
End Sub 'Worksheet_Change
HTH