什么是排序字段的 add2



当我使用宏录制器对列表对象(表(进行排序时,它会产生:

ActiveWorkbook.Worksheets("Output").ListObjects("Table4").Sort.SortFields.Add2

在我的 Excel 版本中运行良好。但是,这不会在其他 Excel 上编译。将其更改为.Add可以解决问题。

谷歌表示,.Add2只存在于ChartObjects中 - 但记录器将其记录为ListObject中 - 它在这里工作,但在另一个Excel(相同版本(中不起作用。

什么是.Add2?为什么我的 Excel 认为这是正确的方法?

这不是答案;我想补充一下我的发现。应该使用评论可能(但不能(。

  • 我可以确认Excel 365 Business宏记录器记录Sort.SortFields.Add2,如果您在列表对象或工作表上定义过滤器。
  • 无法确认宏在另一台机器上的相同 Excel 版本上不起作用(对我来说它可以工作;使用 Excel 16.0.10228.20080 32 位测试(。
  • MSDN 上没有针对SortFields集合 (1( 记录Add2方法,而是针对其他对象(因此"仅适用于 ChartObject"不是正确的(。
  • VBA对象库(我的Excel版本,见上文(Add2列为SortFields类中的函数;AddAdd2之间的唯一区别似乎是Add2还有一个可选的参数[SubField]

结论:我猜(但这只是一个猜测!(Add2是功能扩展,出于兼容性原因,已使用新名称实现。也许宏录制器在这种情况下总是使用最新的功能。 Yor 可以使用Add,除非需要SubField参数。

我仍然喜欢像埃德温·埃德勒(Edwin Ederle(所要求的那样获得更深入的理解。我遇到这篇文章是因为完全相同的情况:使用记录器学习编码排序功能,想知道Add2,并询问谷歌。如果您搜索"vba sortfields add2"=>,这个问题是(其中一个(谷歌点击,也许值得在这里提供更多信息。

Add2是SortFields上的一种方法,仅在较新版本的Excel中可用。 与Add的区别在于Add2支持子字段参数。 例如,在地理字段中,您可以按人口排序。

宏录制器使用Add2来支持按子字段排序。 如果您不需要按子字段排序,则可以将记录的代码更改为Add,它将适用于旧版本的Excel。

最新更新