4Manuals

  • PDF Cloud HOME

VBA Excel范围-按几列排序 Download

    在多个XML中导出Excel 为什么Excel因自动化错误而崩溃? EXCEL评估函数结果不一致 宏VBA-具有2个Y轴的xlColumnClustered Excel VBA用户表单文本框十进制格式 优化刮取和循环 如何调用带有组名或标签的复选框? Excel,XPATH函数和数字格式 VBA:文本框搜索栏和列表框 在用户窗体VBA中格式化下拉列表

我正在尝试对如下所示的excel表进行排序(这是一个小快照。它具有数百行和更多列):

enter image description here

这是我的vba代码

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

此代码导致.SortFields.Add上的错误 “排序参考无效。请确保它在您要排序的数据中,并且第一个“排序依据”框不相同或为空白。”

关于我该如何纠正的任何想法?

其他评论
1)在以前的版本中,我将其命名为.End(xlDown).End(xlToRight)(先向下,然后向右)。那个人从来没有工作过。我以为我找到了.End(xlToRight).End(xlDown)的出色解决方案。它工作了几天,但随后停止工作。

1 个答案:

答案 0 :(得分:1)

起初,我认为错误在于范围选择。 原来的问题是excel在会话之间保存了排序标准(保存在文件中)。
每次我运行代码时,Excel都会引发错误,因为排序条件是重复的。因此,解决方法是先清除所有条件。

With inputSheet.Sort
    .SortFields.Clear
End With



Similar searches
    按名称循环显示文本框 如果没有一个单元格缺少值,如何删除一行数据? 有什么方法可以将游标的plsql表添加为SELECT子句中的列? jQuery验证插件和Ajax提交 没有源代码的现有系统的集成测试