Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 2196|回复: 2

[已解决]谢谢阿童木老师,动态标准排序

[复制链接]
发表于 2010-6-9 10:07 | 显示全部楼层 |阅读模式

X1EN0KFA.rar (126.29 KB, 下载次数: 14)

excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2010-6-9 10:28 | 显示全部楼层    本楼为最佳答案   

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)

'用户在的[C1:H1]区间双击任意一个单元格,电脑将对该单元格所在的列进行有标题行的降序排列

If Target.Count > 1 Then Exit Sub '如果单元格个数超过1个,则退出程序
If Target.Row <> 1 Then Exit Sub '如果单元格行数不在第一行,则退出程序
If Target.Column > 8 Or Target.Column < 3 Then
    Cells.Interior.ColorIndex = xlNone
    Exit Sub '第3列到第8列之间的数据
End If
'有标题行一个条件降序排序
Dim Myr&
Dim Sht1 As Worksheet
Set Sht1 = ThisWorkbook.Worksheets("B")
Application.ScreenUpdating = False
Cancel = True
Cells.Interior.ColorIndex = xlNone
Target.Interior.Color = RGB(0, 0, 255)
Myr = Sht1.[a65536].End(xlUp).Row
Sht1.Range("a1:h" & Myr).Sort Key1:=Sht1.Cells(1, Target.Column), Order1:=xlDescending, Header:=xlYes, _
        OrderCustom:=2, MatchCase:=False, Orientation:=xlTopToBottom, SortMethod _
        :=xlPinYin ', DataOption1:=xlSortNormal  '加这一句电脑就会提示"应用程序定义或对象定义错误"
         
         
Application.ScreenUpdating = True

'End If
End Sub

回复

使用道具 举报

发表于 2010-6-9 11:15 | 显示全部楼层

QUOTE:
以下是引用amulee在2010-6-9 10:28:00的发言:

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)

'用户在的[C1:H1]区间双击任意一个单元格,电脑将对该单元格所在的列进行有标题行的降序排列

If Target.Count > 1 Then Exit Sub '如果单元格个数超过1个,则退出程序
If Target.Row <> 1 Then Exit Sub '如果单元格行数不在第一行,则退出程序
If Target.Column > 8 Or Target.Column < 3 Then
    Cells.Interior.ColorIndex = xlNone
    Exit Sub '第3列到第8列之间的数据
End If
'有标题行一个条件降序排序
Dim Myr&
Dim Sht1 As Worksheet
Set Sht1 = ThisWorkbook.Worksheets("B")
Application.ScreenUpdating = False
Cancel = True
Cells.Interior.ColorIndex = xlNone
Target.Interior.Color = RGB(0, 0, 255)
Myr = Sht1.[a65536].End(xlUp).Row
Sht1.Range("a1:h" & Myr).Sort Key1:=Sht1.Cells(1, Target.Column), Order1:=xlDescending, Header:=xlYes, _
        OrderCustom:=2, MatchCase:=False, Orientation:=xlTopToBottom, SortMethod _
        :=xlPinYin ', DataOption1:=xlSortNormal  '加这一句电脑就会提示"应用程序定义或对象定义错误"
         
         
Application.ScreenUpdating = True

'End If
End Sub

如果,C、D列以升序排序;E、F、G、H列以降序排列又该这么办呢?

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-5-16 14:57 , Processed in 0.243974 second(s), 10 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表