首页 > 解决方案 > 复制粘贴数据,然后对其进行排序,但出现错误

问题描述

我一直在使用下面的代码,它从不同的工作表中复制数据并将其粘贴到不同的工作表上,然后根据要求对其进行排序。

现在我一直面临一个问题,当我使用Office 365它时它工作正常,当使用它时Office 2016出现错误。如果代码在 365 上运行,为什么会出现错误。

在此处输入图像描述

在线上

Sheet2.AutoFilter.Sort.SortFields.Add2 Key:=Range _
("DI1"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
xlSortNormal

这是我的完整代码

Sheet2.Range("DH1:DJ1").AutoFilter
Sheet2.AutoFilter.Sort.SortFields.Clear

Sheet2.AutoFilter.Sort.SortFields.Add2 Key:=Range _
("DI1"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
xlSortNormal

With Sheet2.AutoFilter.Sort
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With

标签: excelvbafilter

解决方案


Add方法的官方描述包括以下段落。

“此 API 不支持数据类型,例如地理或股票。要根据其中一种类型的子字段定义排序顺序,请参阅 Add2 方法。”

因此,该方法足以满足所有正常使用,并且只有在需要该方法不支持Add的特定排序顺序时才应调用 Add2 方法。Add根据经验:如果您不指定Subfield属性,请不要指定Add2.

这适用于 Excel 2016 和 Office 365,不同之处在于 Excel 2016 无法识别该Add2方法。


推荐阅读