上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人
本部分小结
本部分讲述了VBA在区域数据排序中的运用。其中有三个需要重点注意的地方:
(1)排序时是否包含标题。录制宏时,若无标题则会产生Header=xlGuess语句;若有标题则产生Header=xlYes语句。而在自己编程序时,则不需要通过Header来限制,只需控制setrange参数的范围即可。
无标题时可以用“Activecell.CurrentRegion”,表示当前单元格所在的已用区域都参与排序;也可以用“Application.Intersect(ActiveCell.CurrentRegion, ActiveCell.EntireColumn)”,表示已用区域中的当前列都参与排序。
有标题时则用“Application.Intersect(ActiveCell.CurrentRegion, ActiveCell.CurrentRegion. Offset(1, 0))”,表示当前单元格所在的排除首行后的已用区域参与排序;使用相应的阿拉伯数字来限制,表示标题有多少行。
(2)是否扩展排序区域。扩展与否仍然取决于setrange参数的范围。仅仅当前列参与排序用“ActiveCell.EntireColumn”,扩展至整个已用区域则用“ActiveCell. CurrentRegion”。
(3)本部分列举的都是按列排序。在某些特殊情况下可能需要用到按行排序,可以在参数中加一句“.Orientation=xlSortRows”。