我正在尝试对如下所示的excel表进行排序(这是一个小快照。它具有数百行和更多列): 这是我的vba代码 此代码导致.SortFields.Add上的错误
“排序参考无效。请确保它在您要排序的数据中,并且第一个“排序依据”框不相同或为空白。” 关于我该如何纠正的任何想法? 其他评论 答案 0 :(得分:1) 起初,我认为错误在于范围选择。
原来的问题是excel在会话之间保存了排序标准(保存在文件中)。With inputSheet.Sort
.SetRange Range("B3", inputSheet.Range("B3").End(xlToRight).End(xlDown))
.SortFields.Add Key:=inputSheet.Range("C3"), Order:=xlAscending 'FieldSize
.SortFields.Add Key:=inputSheet.Range("H3"), Order:=xlDescending 'Bracket complexity score
.Header = xlYes
.Apply
End With
1)在以前的版本中,我将其命名为.End(xlDown).End(xlToRight)(先向下,然后向右)。那个人从来没有工作过。我以为我找到了.End(xlToRight).End(xlDown)的出色解决方案。它工作了几天,但随后停止工作。1 个答案:
每次我运行代码时,Excel都会引发错误,因为排序条件是重复的。因此,解决方法是先清除所有条件。With inputSheet.Sort
.SortFields.Clear
End With