我有数据表,其中包括' L'列标题是存在以下数据的状态:
ERROR
PENDING
DOC PEND
COMPLETED
我一进入“完成”状态'然后该行应该整理出来并转到顶部。
我希望我的工作表应该显示所有已完成的行。
请帮我以这种方式进行自动排序。
答案 0 :(得分:1)
将以下内容粘贴到工作表模块中。
Private Sub Worksheet_Activate()
myBoolean = False
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
If Not myBoolean Then
If Mid(Target.Address, 1, 2) = "$L" Then
On Error GoTo goodBye
If UCase(Target.Value) = "COMPLETED" Then
Run moveRowToTop(Target.Row)
End If
myBoolean = False
End If
End If
goodBye:
On Error GoTo 0
End Sub
然后将以下内容粘贴到标准模块中。
Public myBoolean As Boolean
Function moveRowToTop(rowToChange As Long)
Application.ScreenUpdating = False
myBoolean = True
Range("A2").Select
Selection.EntireRow.Insert , CopyOrigin:=xlFormatFromLeftOrAbove
ActiveSheet.Range("A" & rowToChange + 1 & ":L" & rowToChange + 1).Select
Selection.Copy
Range("A2").Select
ActiveSheet.Paste
ActiveSheet.Rows(rowToChange + 1 & ":" & rowToChange + 1).Select
Selection.Delete Shift:=xlUp
Range("L2").Select
Application.ScreenUpdating = True
End Function
尝试一下,看看它是否符合您的要求。