excel - Excel VBA - 选择 2 个命名单元格或行之间的整行进行排序
问题描述
Excel 中的宏的新功能。
我的名为“OVERALL”的工作表在行中列出了项目,在列中列出了各种数据。我正在尝试创建基于各种数据单元格对项目进行排序的宏按钮。
由于我将经常将项目添加到组中并且不想使用正确的单元格更新宏以进行排序,因此我一直在尝试使用命名单元格或命名行但已经陷入困境。
我添加的项目有时必须位于最开始、最结束或中间的某个位置,因此我定义了上下边框行以帮助宏识别数据选择的开始和停止位置。在宏中,我希望能够选择边界行之间的整行,以防将来添加其他数据列。
如果我录制一个宏,这就是我得到的代码;
`Sub SortProjectNameA2Z()
Rows("14:149").Select
ActiveWorkbook.Worksheets("OVERALL").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("OVERALL").Sort.SortFields.Add Key:=Range( _
"A14:A149"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
xlSortNormal
With ActiveWorkbook.Worksheets("OVERALL").Sort
.SetRange Range("A14:W149")
.Header = xlGuess
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Range("A11").Select
Application.CutCopyMode = False`
第 14 行是 Upper Border Row = "BorderFirstRow" 下面的整行。
第 149 行是下边界行上方的整行 = "BorderLastRow"
如果有帮助,我还将上边界行的第一个单元格命名为“BorderCellFirst”,将下边界行的第一个单元格命名为“BorderCellLast”?
我找到了一种方法来选择边界行之间的行;Range("BorderCellFirst:BorderCellLast").EntireRow.Select
但我还没有找到一种方法来选择边框行或不包括边框行的边框单元格之间的整行。
谢谢!!
解决方案
尝试,
With Worksheets("OVERALL")
With .Range(.Cells(.Range("BorderFirstRow").Row + 1, "A"), _
.Cells(.Range("BorderLastRow").Row - 1, "W"))
.Sort Key1:=.Cells(1), Order1:=xlAscending, _
Orientation:=xlTopToBottom, Header:=xlNo
End With
End With
要使用辅助键排序,
With Worksheets("OVERALL")
With .Range(.Cells(.Range("BorderFirstRow").Row + 1, "A"), _
.Cells(.Range("BorderLastRow").Row - 1, "W"))
.Sort Key1:=.Cells(1, "A"), Order1:=xlAscending, _
Key2:=.Cells(1, "C"), Order2:=xlDescending, _
Key3:=.Cells(1, "B"), Order3:=xlAscending, _
Orientation:=xlTopToBottom, Header:=xlNo
End With
End With
将 A 列作为主要排序,然后将 C 列排序,然后将 B 列排序。
这种排序方法最多只允许三个键,但您可以先对其他辅助键进行预排序。
推荐阅读
- javascript - 如何在 JavaScript 中找到其父级的子级位置
- mapbox-gl-js - 根据 Mapbox GL JS 中的分类属性为点分配随机颜色
- scala - 错误:值更新不是 org.apache.spark.sql.DataFrame 的成员
- java - 使用 Hibernate 和 MySQL 时出现多个错误
- installation - 使用自签名证书将 Xray 2.6.3 Docker 安装与 Artifacotry 连接起来
- python - VSCode 不显示 discord.py 的代码建议
- angular - 无法从父组件访问子组件功能
- patch - 从补丁文件中删除对特定文件的更改
- javascript - 根据选定的单选按钮以及页面加载隐藏下拉选项
- python - django.db.utils.DatabaseError: ORA-00904: 标识符无效