Excel表格怎么輸入數據自動排序?
編制一個排序的VBA程序。再寫一個時間觸發的程序來調用該排序程序。;時間觸發就是在約定的單元格,只要有數據變化就啟動該事件。;舉例說明:;例如有一張明細表如圖:;另有一張匯總表如圖:;現在要編制二個宏。一個是對匯總表進行排序。一個是當明細表有數據變更時,觸發該排序的程序。;排序的代碼如下:;Sub 排序();Dim mYsheet As String;Dim arr(1 To 3, 1 To 2);Dim I, J, K As Integer;Dim M_S1 As String '存放交換地區名;Dim M_S2 As Double '存放交換銷售額;mYsheet = "匯總排名";Sheets(mYsheet).Select;'將數值讀取到數組中;For I = 1 To 3; For J = 1 To 2; arr(I, J) = Cells(I + 1, J + 1); Next J;Next I;'排序;For I = 1 To 2; For J = I + 1 To 3; If arr(I, 2) < arr(J, 2) Then; M_S1 = arr(I, 1); M_S2 = arr(I, 2); arr(I, 1) = arr(J, 1); arr(I, 2) = arr(J, 2); arr(J, 1) = M_S1; arr(J, 2) = M_S2; End If; Next J;Next I;'將數組的排序結果存放到單元格中;For I = 1 To 3; Cells((I + 1), 2) = arr(I, 1);Next I;End Sub;事件驅動,只要明細表的前4列有數據變化就啟動排序;Private Sub worksheet_change(ByVal target As Range); If target.Column <= 4 Then; 排序; End If;End Sub