我的數據表中「L」列標題狀態,其中下面的數據是存在的:自動排序行作爲數據輸入
ERROR
PENDING
DOC PEND
COMPLETED
當我輸入「已完成」,那麼該行應整理出來並返回頂部。
我想我的工作表應該顯示頂部的所有完成的行。
請幫我做這種自動排序。
我的數據表中「L」列標題狀態,其中下面的數據是存在的:自動排序行作爲數據輸入
ERROR
PENDING
DOC PEND
COMPLETED
當我輸入「已完成」,那麼該行應整理出來並返回頂部。
我想我的工作表應該顯示頂部的所有完成的行。
請幫我做這種自動排序。
將以下內容粘貼到工作表模塊中。
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
試試看看它是否做到了你想要的。
是的,我想添加行到行2,因爲我輸入數據n L列「已完成」 – user3705748
@JohnRichter:很好的澄清問題 - 有一些要點! –
非常感謝@Solar Mike。 –
請在您的問題中停止「SHOUTING」! – davejal
將公式應用到另一列,在您輸入完成後將顯示排序後的數據。 – harun24hr