姓名 业绩
第一名 1地区 $0
第二名 2地区 $0
第三名 3地区 $0
第四名 4地区 $0
第五名 5地区 $0
前面排名不动,在业绩里输入数字以后,地区和业绩自动根据业绩降序排序
ç¼å¶ä¸ä¸ªæåºç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
请问,可不可以不用手动点排序,而是输入数据以后就自动排列呢,用什么函数公式可以做到?
追答好像不行,
这样就可以你输完数据之后再排列.
是一样的效果.也简单些..