利用宏对Excel行排序.docVIP

  1. 1、本文档共3页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
利用宏对Excel行排序前段时间,因数据分析需要,要在Excel中,进行大量的行排序操作,我们知道,对列的排序很简单,但是对行的排序比较复杂。所以经过摸索,得出以下方法。 根据工作量大小其可分为两种情况: 1。需要排序的行很少,则可以运用一下步骤进行手动排序。 ?? 选取要排序的行,“数据”-“排序”-“以当前选定区域排序”,然后点下面的“选项”,在“方向”选择“以行排序”即可。 2。需要排序的行很多,且可能有多个表需要行排序,此时再使用上面的方法,则工作量太大。 ?? 针对这种需要,需要新的方法,主要思路是利用“选择性黏贴”的转置功能,把行排序转换为列排序,然后录制为宏,把录制的宏添加循环即可实现大量重复的过程。 以下举例解释操作过程: 第一步:选择“工具”-“宏”-“录制新宏”,在弹出的对话框中,宏名随便(此例为Macro3),主要是快捷键设置,不要与系统默认的冲突(只能是字母),另外要指定宏运行的范围。在“保存在”中共有三个选项,选项不同,下面对宏的编辑有所不同。一般选择“当前工作薄”,如果需要大量处理相似的表,则可保存至“个人工作薄”,点确定,开始录制宏。 第二步:选择要排序的行C1:G1,“复制”,选择I1单元格,右键“选择性粘贴”(勾选左下角“转置”)-确定后,I1-I55个单元格从上到下依次为7 6 5 4 10,再选中I1:I55个单元格,进行列排序(这个都会),升序或降序依个人需要不同(此例为升序)。排序好的I1:I5重新选择-“复制”-选择K1单元格-右键“选择性粘贴”(同样勾选转置),则在K1:O1的这5个单元格中就会出现已经排序好的数值。4 5 6 7 10。结果如下: 第三步:“工具”-“宏”-“停止录制”。 第四步:关键的一步。“工具”,“宏”-“宏”,在弹出的“宏”对话框中,列出了刚才录制的宏Macro3,选择它,点右边的“编辑”选项,会打开一个VB的对话框。 接下来,是最后重要的一步,对此宏进行编辑,添加循环语句,以实现自动操作。 注意的地方: 1。循环语句用for来实现。且要先定义一个整型变量i,通过i的赋值及步长,实现逐行排序,或者间隔排序,或者奇数行排序,或者偶数行排序; 2。Excel中的单元格函数引用方法:Cells(行号,列号),需要说明的是,在Excel中,行号是阿拉伯数字表示,列号是26英文字母表示,但是在使用VBA时,列号也可以用阿拉伯对应,及A列,也可称为1列。函数讲解: ----------------------------------------------------------------------------------------------- Sub Macro3()?---宏开始 Macro3 Macro 宏由 peter.wei 录制,时间: 2010-5-22 快捷键: Ctrl+t ???????????????????? -----注释部分,以“ ”标出,提示宏名及录制者和时间。 ??? Range(C1:G1).Select???------选择C1:G1单元格 ??? Selection.Copy?????????????-----复制 【Range(I1).Select???????? ??? Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _ ??????? False, Transpose:=True ??? Application.CutCopyMode = False 】???--------选择I1单元格,然后转置粘贴 ??? 【 Selection.Sort Key1:=Range(I1), Order1:=xlAscending, Header:=xlGuess, _ ??????? OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, SortMethod _ ??????? :=xlPinYin, DataOption1:=xlSortNormal】?-----------对I1:I5单元格,按升序排序 ??? 【Selection.Copy ??? Range(K1).Select ??? Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _ ??????? False, Transpose:=True】??????????????????-------------选择K1单元格,后转置粘贴 ????’【 Range(R10).Select? ??

文档评论(0)

185****7617 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档