在EXECL录制到排序宏代码:
Sub Macro1()
'
' Macro1 Macro
' 宏由 User 录制,时间: 2013/3/30
'
'
Selection.Sort Key1:=Range("A3"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, SortMethod:=xlPinYin, DataOption1:=xlSortNormal
End Sub
求:如何用OBJect的办法写到ACCESS里?
dim obj as object
set obj=CreateObject("Excel.Application")
obj.Selection.Sort Key1:=Range("A3"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, SortMethod:=xlPinYin, DataOption1:=xlSortNormal
Range("A3"), 提示:编译错误,子过程或函数未定义。
改为:obj.Range("A3"), 没有错误提示,但程序停在这行不动了,整个语句显**。
整个语句显黄底色。
dim obj as object
set obj=CreateObject("Excel.Application")
obj.Selection.Sort Key1:=obj.Range("A3"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, SortMethod:=xlPinYin, DataOption1:=xlSortNormal
就是这样语句出现:运行时错误 '1004' 类 Range 的 Sort 方法无效
整个语句显黄底色
按调试后
由于Excel对象是后期绑定的,可能后面几个参数要用具体的数字表示。假设xlAscending对应的是1的话,那就要用1表示,而不能用xlAscending表示。具体各个参数都是什么数字,需要到Excel的宏中,通过F1查看。
最好的解决方法,是用先期绑定,这样可以避免这个问题。
Dim objbook As Object
Dim obj As Object
Set obj = CreateObject("Excel.Application")
Set objbook = obj.Workbooks.Open(CurrentProject.Path & "\二○一三年查治病登记簿")
obj.Worksheets("查病名单").Select
obj.Selection.Sort Key1:=obj.Range("A3"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, SortMethod:=xlPinYin, DataOption1:=xlSortNormal