VBA错误对象'SortFields'的方法'添加'失败
我正在尝试从Excel表A的列A中sorting。 我logging了这个macros,并通过我的工作表对象replace了这个工作表来编写子程序。 尽pipe直到这一行的代码工作正常,但我仍然有以下错误,而且据我所知,声明没有问题。 错误:运行时错误'-2147417851(80010105)'方法'添加'对象'SortFields'失败。
Dim ExlWB As Excel.Workbook Dim ExlWS As Excel.Worksheet Set ExlWB = ExlApp.Workbooks.Open(ThisWorkbook.Path & "\Sample.xlsx") Set ExlWS = ExlWB.Sheets(1) ExlWS.Range("$A$2:$B$" & Rows + 1).RemoveDuplicates Columns:=1, Header:=xlNo ExlWS.Sort.SortFields.Clear ExlWS.Sort.SortFields.Add Key:=Range("A2"), _ SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal With ExlWS.Sort .SetRange Range("A2:B" & ExlWS.Range("A1").End(xlDown).Row) .Header = xlNo .MatchCase = False .Orientation = xlTopToBottom .SortMethod = xlPinYin .Apply End With
任何人都可以告诉可能是什么错误。 先谢谢你。
就像我在上面的评论中提到的,你还没有完全限定你的范围对象
您在Range("A2")
和.Range("A2:B"...
Range("A2")
之前缺lessExlWS
.Range("A2:B"...
你的代码可以写成
ExlWS.Sort.SortFields.Add Key:=ExlWS.Range("A2"), _ SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal With ExlWS.Sort .SetRange ExlWS.Range("A2:B" & ExlWS.Range("A1").End(xlDown).Row) .Header = xlNo .MatchCase = False .Orientation = xlTopToBottom .SortMethod = xlPinYin .Apply End With
BTW后xl2007 +,我从来没有使用macroslogging器给我的数据sorting的代码。 我仍然使用Excel 2003中的代码
例如
With ExlWS.Range("A2:B" & ExlWS.Range("A1").End(xlDown).Row) .Sort Key1:=ExlWS.Range("A2"), _ Order1:=xlAscending, _ Header:=xlGuess, _ OrderCustom:=1, _ MatchCase:=False, _ Orientation:=xlTopToBottom, _ DataOption1:=xlSortNormal End With