excel vba 排序高手进排序问题

查看: 4103|回复: 8
EXCEL中能否实现新输入内容自动进行排序
初级一, 积分 12, 距离下一级还需 38 积分
积分学习力
魅力值 影响力
消费券 Ti币好友
在线时间 小时
最后登录月度优秀 次
免费注册成为本站会员,享用更多功能,结识更多Office办公高手!
才可以下载或查看,没有帐号?
又来请教各位大侠了,我希望在EXCEL表中新输入内容后自动连同扩展区域进行排序,
请问该如何实施?
M1DM2EM3ZM4BM5FM6KM8NM9MM10NM11L新输入:M7S
输入后自动排序成:
M1DM2EM3ZM4BM5FM6KM7SM8NM9MM10NM11L
学office,哪能不关注全网最大的Office类微博(新浪)
积分学习力
魅力值 影响力
消费券 Ti币好友
在线时间 小时
最后登录月度优秀 次管理次数 次
试试这段代码:
Private Sub Worksheet_Change(ByVal Target As Range)& & '当工作表发生改变时执行本程序(固定格式)
On Error Resume Next& & '当错误 转到 下一个
If Target.Column = 2 Then& & '如果&&Target的列标=2 则执行
Application.ScreenUpdating = False& & '关闭屏幕刷新(可以提高运行速度)
For x = 2 To Range(&A65536&).End(3).Row& & '设定变量范围为x=2到&单元格&区域(&A65536& )的&末端&(3 )的行标
&&Cells(x, 3) = Mid(Cells(x, 1), 2) + 0& & '&单元格&坐标(x,3)=&截取字符串&(&单元格&坐标(x,1),2)+0
Next& & '下一个
Columns(&A:C&).Select& & '&列&坐标(&A:C& )的选定
Range(&C1&).Activate& & '&单元格&区域(&C1& )的激活
ActiveWorkbook.Worksheets(&Sheet1&).Sort.SortFields.Clear& & ' 活动工作簿的&工作表&(&Sheet1& )的排序 的排序区域的清除
ActiveWorkbook.Worksheets(&Sheet1&).Sort.SortFields.Add Key:=Range(&C2:C9&), _& & ' 活动工作簿的&工作表&(&Sheet1& )的排序 的排序区域的添加 关键字=&单元格&区域(&C2:C9&),_
SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal& & '排序依据=依数值排序,命令=升序,数据选项=普通排序
With ActiveWorkbook.Worksheets(&Sheet1&).Sort& & '工作于 活动工作簿的&工作表&(&Sheet1& )的排序
&&.SetRange Range(&A1:C9&)& & '&With对象&的设定范围&单元格&区域(&A1:C9&)
&&.Header = xlYes& & '&With对象&的标题=是
&&.MatchCase = False& & '&With对象&的区分大小写=False
&&.Orientation = xlTopToBottom& & '&With对象&的方向=由上向下
&&.SortMethod = xlPinYin& & '&With对象&的排序模式=拼音
&&.Apply& & '&With对象&的应用
End With& & 'With语句结束
Columns(&C:C&).ClearContents& & '&列&坐标(&C:C& )的清除内容
Cells(Range(&A65536&).End(3).Row + 1, 1).Select& & '&单元格&坐标(&单元格&区域(&A65536& )的&末端&(3 )的行标+1,1 )的选定
End If& & 'If判断过程结束
End Sub& & '子程序结束复制代码
(10.45 KB, 下载次数: 63)
12:55 上传
点击文件名下载附件
EXCEL中能否实现新输入内容自动进行排序
自动.gif (174.65 KB, 下载次数: 3)
EXCEL中能否实现新输入内容自动进行排序
12:55 上传
带注释的VBA代码,悟空师弟果然实力不凡
学office,哪能不关注全网最大的Office类微博(新浪)
积分学习力
魅力值 影响力
消费券 Ti币好友
在线时间 小时
最后登录月度优秀 次管理次数 次
温馨提示:具体情况具体解决,2楼代码仅解决楼主示意的数据。
学office,哪能不关注全网最大的Office类微博(新浪)
初级一, 积分 12, 距离下一级还需 38 积分
积分学习力
魅力值 影响力
消费券 Ti币好友
在线时间 小时
最后登录月度优秀 次
本帖最后由 Joker 于
14:12 编辑
恩,非常感谢,我想我要的就是这个,只是有些不懂,代码中为何多次出现C列的字符。
还有,该函数代码是否必须每次开启后都需导入?还是说导入一次后就能保存在该表格中了?
导入后题示这两段代码有错:
ActiveWorkbook.Worksheets(&Sheet1&).Sort.SortFields.Add Key:=Range(&C2:C9&), _& & ' 活动工作簿的&工作表&(&Sheet1& )的排序 的排序区域的添加 关键字=&单元格&区域(&C2:C9&),_
SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal& & '排序依据=依数值排序,命令=升序,数据选项=普通排序
问题可能很傻,敬请原谅...
学office,哪能不关注全网最大的Office类微博(新浪)
积分学习力
魅力值 影响力
消费券 Ti币好友
在线时间 小时
最后登录月度优秀 次管理次数 次
代码中为何多次出现C列的字符。
C列为辅助列,用于分离A列字符串的数字并比较大小以排序。
该函数代码是否必须每次开启后都需导入?还是说导入一次后就能保存在该表格中了?
代码放在change事件中,每次单元格内容变化后都会触发该事件。而且悟空师弟版主已经传附件了,直接用应该就可以了吧。
导入后题示这两段代码有错:
ActiveWorkbook.Worksheets(&Sheet1&).Sort.SortFields.Add Key:=Range(&C2:C9&), _& & ' 活动工作簿的&工作表&(&Sheet1& )的排序 的排序区域的添加 关键字=&单元格&区域(&C2:C9&),_
SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal& & '排序依据=依数值排序,命令=升序,数据选项=普通排序
初步判断:
Sort方法在Excel2003与Excel2007中的用法不同的,因为你没有传附件,悟空师弟也无法判断您用的版本,所以他仅仅用Excel高版本的文件回复了。
学office,哪能不关注全网最大的Office类微博(新浪)
初级一, 积分 12, 距离下一级还需 38 积分
积分学习力
魅力值 影响力
消费券 Ti币好友
在线时间 小时
最后登录月度优秀 次
投降了,自己弄这段代码弄了半天都不对,哪位大大告诉我怎么上传附件啊?...
学office,哪能不关注全网最大的Office类微博(新浪)
初级一, 积分 12, 距离下一级还需 38 积分
积分学习力
魅力值 影响力
消费券 Ti币好友
在线时间 小时
最后登录月度优秀 次
找到上传的方法了。
我设想将附件表格输入完A~K行后自动以C列的订单号这一列为基准,连同A~K扩展区域进行排序。
自己将编码修改为:
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Target.Column = 11 Then
Application.ScreenUpdating = False
For Z = 11 To Range(&C65536&).End(3).Row
&&Cells(Z, 18) = Mid(Cells(Z, 1), 11) + 0
Columns(&A:K&).Select
Range(&U1&).Activate
ActiveWorkbook.Worksheets(&技术部模治具验收单追踪表&).Sort.SortFields.Clear
ActiveWorkbook.Worksheets(&技术部模治具验收单追踪表&).Sort.SortFields.Add Key:=Range(&C4:C65536&), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets(&技术部模治具验收单追踪表&).Sort
&&.SetRange Range(&A4:K65536&)
&&.Header = xlYes
&&.MatchCase = False
&&.Orientation = xlTopToBottom
&&.SortMethod = xlPinYin
Columns(&U:U&).ClearContents
Cells(Range(&C65536&).End(3).Row + 1, 1).Select
实在不知道错在哪了,请各位大大指教。
15:51 上传
点击文件名下载附件
50.51 KB, 下载次数: 34
EXCEL中能否实现新输入内容自动进行排序
学office,哪能不关注全网最大的Office类微博(新浪)
初级一, 积分 12, 距离下一级还需 38 积分
积分学习力
魅力值 影响力
消费券 Ti币好友
在线时间 小时
最后登录月度优秀 次
再顶,求解
学office,哪能不关注全网最大的Office类微博(新浪)
新鲜人, 积分 1, 距离下一级还需 9 积分
积分学习力
魅力值 影响力
消费券 Ti币好友
在线时间 小时
最后登录月度优秀 次
给我份谢谢
学office,哪能不关注全网最大的Office类微博(新浪)
Excel技巧网的会员探讨问题仅代表其个人意见,与网站的立场无关。任何违反国家和地方相关法律法规的言论,本站有义务协助政府相关部门追究发言者的责任!
本站中非注明转载文章与案例的版权为作者与Excel技巧网共有。若非原文作者,本站之外任何单位或个人未经允许,不得将其用于商业用途。
若非原文作者,任何形式的非商业性转载必须获得Excel技巧网或作者允许,并注明作者和出处。
会员发表的帖子如涉及版权纠纷,须自行负责。详情请参考注册时的网站服务条款。
本站特聘法律顾问:沈学律师
Powered byEXCEL高手来进,排序问题!_百度知道查看: 13106|回复: 4
阅读权限1UID391193函数0 关最后登录经验5 点在线时间0 小时VBA0 关分享记录好友技巧0 关相册主题段位0 段金币25 个积分5精华0帖子日志注册时间
幼儿园小班, 积分 5, 距离下一级还需 95 积分
金币25 个积分5帖子
各位老师,我用的是2007,为了表格好看,直接套用了表格格式,最上面这行的排序功能我根本不需要,而且还影响了美观,请问应该怎么取消他啊?谢谢!
18:00 上传
请问如何取消这个排序的功能?
阅读权限22UID18795函数4 关最后登录经验16650 点在线时间906 小时VBA3 关分享记录好友技巧9 关相册主题段位6 段金币31906 个积分19378精华1帖子日志注册时间
金币31906 个积分19378帖子
liyh67发布于
数据——筛选——去掉“自动筛选”前的勾
阅读权限22UID18795函数4 关最后登录经验16650 点在线时间906 小时VBA3 关分享记录好友技巧9 关相册主题段位6 段金币31906 个积分19378精华1帖子日志注册时间
大学助理讲师, 积分 19378, 距离下一级还需 7622 积分
金币31906 个积分19378帖子
&&&本楼为最佳答案&&&
数据——筛选——去掉“自动筛选”前的勾
阅读权限1UID391193函数0 关最后登录经验5 点在线时间0 小时VBA0 关分享记录好友技巧0 关相册主题段位0 段金币25 个积分5精华0帖子日志注册时间
幼儿园小班, 积分 5, 距离下一级还需 95 积分
金币25 个积分5帖子
果然!谢谢楼上这位老师的棒组合,谢谢!
阅读权限2UID181101函数0 关最后登录经验171 点在线时间4 小时VBA0 关分享记录好友技巧0 关相册主题段位3 段金币190 个积分171精华0帖子日志注册时间
综9.1.05066
幼儿园中班, 积分 171, 距离下一级还需 29 积分
金币190 个积分171帖子
阅读权限17UID333160函数0 关最后登录经验6106 点在线时间211 小时VBA0 关分享记录好友技巧0 关相册主题段位0 段金币5381 个积分6116精华0帖子日志注册时间
综9.1班03039
大学2年级, 积分 6116, 距离下一级还需 584 积分
金币5381 个积分6116帖子
或插入一行进行筛选,觉得不好看把行距调小
最佳答案累计大于100
每周一测编辑
Powered by查看: 1288|回复: 17
高手请进来解决排序问题
阅读权限20
在线时间 小时
高手请进来解决排序问题
16:21 上传
点击文件名下载附件
2.21 KB, 下载次数: 68
阅读权限70
在线时间 小时
& & & & & & & &
直接排序好了,干嘛要用函数公式呢???
阅读权限95
在线时间 小时
(3 KB, 下载次数: 16)
16:38 上传
点击文件名下载附件
=INDEX($A$1:$H$8,SMALL(IF($C$1:$C$8=SMALL($C$1:$C$8,ROW(A1)),ROW($C$1:$C$8),4^8),COUNTIF($C$10:C10,C10)),COLUMN(A:H))复制代码
阅读权限95
在线时间 小时
本帖最后由 yangrongguan 于
16:45 编辑
=IF(ROW()&8,&&,INDEX(A:A,RIGHT(SMALL($C$1:$C$8*1000+ROW($1:$8),ROW()),2)))
16:44 上传
点击文件名下载附件
5.16 KB, 下载次数: 39
阅读权限20
在线时间 小时
3楼的 公式只能固定是8行,如果 排序的是 9行,十行 又要改公式, 岂不是很麻烦???&&有没有不固定行数的公式
阅读权限30
在线时间 小时
快樂學習 发表于
直接排序好了,干嘛要用函数公式呢???
我也赞同 啊,这个问题一定要公式吗?
阅读权限50
在线时间 小时
本帖最后由 wm078 于
16:54 编辑
=INDEX(A:A,MOD(SMALL($C$1:$C$8*1000+ROW($C$1:$C$8),ROW(A1)),1000))&&&
数组,右拉,下拉
阅读权限50
在线时间 小时
让你久等了,请看附件,但愿能用
16:48 上传
点击文件名下载附件
4.51 KB, 下载次数: 8
阅读权限95
在线时间 小时
bobo345202 发表于
3楼的 公式只能固定是8行,如果 排序的是 9行,十行 又要改公式, 岂不是很麻烦???&&有没有不固定行数的公式
把8改成行应该够用了。下拉公式
=INDEX($A$1:$H$9999,SMALL(IF($C$1:$C$9999=SMALL($C$1:$C$9999,ROW(A1)),ROW($C$1:$C$),COUNTIF($C$10:C10,C10)),COLUMN(A:H))
阅读权限95
在线时间 小时
本帖最后由 hjj0451 于
16:54 编辑
还是4楼、7楼的公式好,学习了
玩命加载中,请稍候
玩命加载中,请稍候
Powered by
本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任! & & 本站特聘法律顾问:徐怀玉律师 李志群律师

我要回帖

更多关于 excel vba 排序 的文章

 

随机推荐