簡體   English   中英

Excel VBA:插入新行時自動排序

[英]Excel VBA: Auto sort when new row is inserted

我有一個包含來自A5:S數據的表格,並且每次插入一行時都希望按標題中帶有"segment"的列進行排序。

我在字符串列“段”的左側創建了一個數字列,它與我的“排名”相匹配,唯一的問題是它不會自動對行進行排序。

我試過這個 VBA,但沒有任何反應:

Private Sub Worksheet_Change(ByVal Target As Range)

    If Target.Column = 2 Then

        Dim lastRow As Long
        lastRow = Cells(Rows.Count, 1).End(xlUp).Row
        Range("A5:S" & lastRow).Sort key1:=Range("A5:A" & lastRow), order1:=xlAscending, Header:=xlGuess

    End If

End Sub

如果你改變了怎么辦:

if target.column = 2 then

為了

if activecell.column = 2 then

如果您對 A 列中的行數進行計數,那么當您插入一行時,worksheet_change 事件可以在行數增加時運行。 可能將 enableevents 添加到 false 將是一個好主意,因此在排序時 change_evnt 不會啟動

Dim LstRw As Long

    Private Sub Worksheet_Change(ByVal Target As Range)
        Dim Rws As Long
        Rws = Me.Cells(Me.Rows.Count, "A").End(xlUp).Row

        If Rws > LstRw Then
            Application.EnableEvents = False
            MsgBox "Run your code here!"
            Application.EnableEvents = True
        End If

    End Sub

    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
        LstRw = Me.Cells(Me.Rows.Count, "A").End(xlUp).Row
    End Sub

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM