找回密码
 加入
搜索
查看: 4079|回复: 3

[效率算法] Excel宏-排序 如何将宏转换为Au3代码

[复制链接]
发表于 2012-7-24 09:21:15 | 显示全部楼层 |阅读模式
本帖最后由 xlj310 于 2012-7-24 09:23 编辑

使用Excel的宏操作速度比较快,当前我要处理一些表格的排序,但是表格里本身没有宏,要一个一个输入也很麻烦。
我的思路是这样的:
1.可以将事先录制得到的宏代码写入Excel里,然后运行这个宏。
2.用au3直接模拟宏操作。- 我想要这种。

现在我不会将宏转换为Au3,在此向各位请教,期待高手解答!

宏代码:


Sub 宏2()
'
' 宏2 宏
'

'
    Range(Selection, Selection.End(xlToRight)).Select
    Range(Selection, Selection.End(xlDown)).Select
    ActiveWorkbook.Worksheets("排序").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("排序").Sort.SortFields.Add Key:=Range("E3:E80"), _
        SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
    ActiveWorkbook.Worksheets("排序").Sort.SortFields.Add Key:=Range("F3:F80"), _
        SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
    ActiveWorkbook.Worksheets("排序").Sort.SortFields.Add Key:=Range("G3:G80"), _
        SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
    With ActiveWorkbook.Worksheets("排序").Sort
        .SetRange Range("E2:G80")
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
End Sub

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2012-7-24 12:33:43 | 显示全部楼层
$excel=ObjCreate("excel.application")
$excel.visible=True
$wb=$excel.workbooks.open(@ScriptDir&"20120724测试表格.xls")
With $wb.worksheets("排序")
        $area=.range("a3:c"&.cells(.rows.count,1).end(3).row)
        $area.sort($area.cells(1,1),1,$area.cells(1,2),Default,1,$area.cells(1,3),1)
EndWith
测试
发表于 2012-7-24 12:36:09 | 显示全部楼层
sort排序说明,这个方法与楼主录到的方法不太一样,不过程序调用时比较好用
  对数据透视表、单元格区域或活动区域(如果指定区域仅包含一个单元格)进行排序。   
   
  expression.Sort(Key1,   Order1,   Key2,   Type,   Order2,   Key3,   Order3,   Header,   OrderCustom,   MatchCase,   Orientation,   SortMethod,   DataOption1,   DataOption2,   DataOption3)   
   
  expression       必需。该表达式返回“应用于”列表中的对象之一。   
   
  Key1       Variant   类型,可选。第一个排序字段,可为文本(数据透视表字段或区域名)或者为   Range   对象   (例如,“Dept”或   Cells(1,   1))。   
   
  Order1       XlSortOrder   类型,可选。在   Key1   中指定的字段或区域的排序顺序。   
   
  XlSortOrder   可为以下   XlSortOrder   常量之一。     
  xlDescending   对   Key1   按降序排序。     
  xlAscending   默认值。对   Key1   按升序排序。     
   
  Key2       Variant   类型,可选。第二个排序字段,可为文本(数据透视表字段或区域名)或者为   Range   对象。如果省略本参数,则没有第二个排序字段。对数据透视表进行排序时,不能使用本参数。   
   
  Type       Variant   类型,可选。指定要排序的元素。仅在对数据透视表排序时才使用本参数。   
   
  XlSortType   可为以下   XlSortType   常量之一。     
  xlSortLabels   按标签对数据透视表排序。     
  xlSortValues   按值对数据透视表排序。     
   
  Order2       XlSortOrder   类型,可选。在   Key2   中指定的字段或区域的排序顺序。对数据透视表进行排序时,不能使用本参数。   
   
  XlSortOrder   可为以下   XlSortOrder   常量之一。     
  xlDescending   对   Key2   按降序排序。     
  xlAscending   默认值。对   Key2   按升序排序。     
   
  Key3       Variant   类型,可选。第三个排序字段,为文本(区域名)或者为   Range   对象。如果省略本参数,则没有第三个排序字段。对数据透视表进行排序时,不能使用本参数。   
   
  Order3       XlSortOrder   类型,可选。在   Key3   中指定的字段或区域的排序顺序。对数据透视表进行排序时,不能使用本参数。   
   
  XlSortOrder   可为以下   XlSortOrder   常量之一。     
  xlDescending   对   Key3   按降序排序。     
  xlAscending   默认值。对   Key3   按升序排序。     
   
  Header       XlYesNoGuess   类型,可选。指定第一行是否包含标题。对数据透视表进行排序时,不能使用本参数。   
   
  XlYesNoGuess   可为以下   XlYesNoGuess   常量之一。     
  xlGuess   由   Microsoft   Excel   确定是否有标题,如果有,确定标题位于何处。     
  xlContinuous   默认值。(应对整个区域进行排序)。     
  xlYes   (不应对整个区域进行排序)。     
   
  OrderCustom       Variant   类型,可选。本参数是从   1   开始的整数,指定了在自定义排序顺序列表中的索引号。如果省略   OrderCustom   参数,则使用常规排序。   
   
  MatchCase       Variant   类型,可选。如果为   True,则进行区分大小写的排序;如果为   False,则排序时不区分大小写。对数据透视表进行排序时,不能使用本参数。   
   
  Orientation       XlSortOrientation   类型,可选。排序方向。   
   
  XlSortOrientation   可为以下   XlSortOrientation   常量之一。     
  xlSortRows   默认值。按行排序。     
  xlSortColumns   按列排序。     
   
  SortMethod       XlSortMethod   类型,可选。排序类型。对于所选择或安装的不同语言支持(例如:美国英语),以上某些常量可能不可用。   
   
  XlSortMethod   可为以下   XlSortMethod   常量之一。     
  xlStroke   按每个字符的笔划数量排序。     
  xlPinYin   默认值。按字符的汉语拼音顺序排序。     
   
  DataOption1       XlSortDataOption   类型,可选。指定如何对   key   1   中的文本进行排序。对数据透视表进行排序时,不能使用本参数。   
   
  XlSortDataOption   可为以下   XlSortDataOption   常量之一。     
  xlSortTextAsNumbers   将文本作为数字型数据排序。     
  xlSortNormal   默认值。分别对数字和文本数据进行排序。     
   
  DataOption2       XlSortDataOption   类型,可选。指定如何对   key   2   中的文本进行排序。对数据透视表进行排序时,不能使用本参数。   
   
  XlSortDataOption   可为以下   XlSortDataOption   常量之一。     
  xlSortTextAsNumbers   将文本作为数字型数据排序。     
  xlSortNormal   默认值。分别对数字和文本数据进行排序。     
   
  DataOption3       XlSortDataOption   类型,可选。指定如何对   key   3   中的文本进行排序。对数据透视表进行排序时,不能使用本参数。   
   
  XlSortDataOption   可为以下   XlSortDataOption   常量之一。     
  xlSortTextAsNumbers   将文本作为数字型数据排序。     
  xlSortNormal   默认值。分别对数字和文本数据进行排序。     
   
  说明   
  对于特定的工作表,每次使用本方法时,将保存对   Header、Order1、Order2、Order3、OrderCustom   和   Orientation   的设置。如果在下次调用本方法时不指定这些参数的值,则会使用这些保存的值。如果不使用这些保存的值,在每次使用   Sort   方法时请明确设置这些参数的值。   
   
  不能转换为数字型数据的文本字符串按常规排序。   
   
  注意       如果使用   Sort   方法时没有定义参数,则   Microsoft   Excel   会对所选定的要排序的区域按升序排序。
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-11-1 07:14 , Processed in 0.078576 second(s), 25 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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