我有这行代码:
sourceRange = wbkSourceFile.Worksheets(1).Range(Cells(1, 1), Cells(lengthOfArray, widthOfArray))
它应该从我正在加载到宏中的工作表中取一个范围并将其放入数组中,以便我可以进行一些计算,然后将结果数据放在另一个工作表上。如果我需要在源数据中按三列对数据进行排序以便进行计算,那么在将范围复制到数组(即运行上面的代码)或填充数组之前,最好对工作表进行排序。然后对数据进行排序?
简而言之,最好是对工作表数据进行排序,然后加载数组或者之后只对数组进行排序?
答案 0 :(得分:1)
主要区别在于,如果您进行排序,源表将最终排序。如果子进行排序,则源表可以保持不变。
另外,如果你要重复这个过程,让子进行排序会在每次处理数据时节省一些时间。
答案 1 :(得分:0)
vba没有任何内置的排序功能,因此如果您使用代码执行此操作,则必须编写/查找排序算法。如果您对多列进行排序,这将变得非常复杂。因此,我想说最好的办法是使用Range.Sort对工作簿中的数据进行排序。