Excel宏-排序 如何将宏转换为Au3代码
本帖最后由 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 $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测试 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 会对所选定的要排序的区域按升序排序。
页:
[1]