【发布时间】:2023-02-02 10:38:11
【问题描述】:
我正在尝试编写对工作表中的两列进行排序的代码,但由于存在零和空白而遇到困难。
我需要按日期排序(最早到最旧),然后根据保费对数据进行排序(从大到小,但输入的保费为空白或零)。
我希望宏命令工作表,以便它按顺序显示日期(最早),然后显示保费(最大)。
到目前为止,这是我所拥有的,但效果不佳,有人可以帮忙吗?
P = 日期
F =溢价
Range = A2:BA5000(条目不应超过此数字并且它不是表格)
A3 中总会有一些东西(这是一个保单号,任何输入表格的东西都必须有一个保单号)
电子表格保存在 SharePoint 上并且自动保存处于打开状态
Sub MultiLevelSort()
Worksheets("Portfolio Tracker").Unprotect Password:="Password"
Worksheets("Portfolio Tracker").Sort.SortFields.Clear
Range("A3", Range("A3").End(xlDown)).Sort Key1:=Range("F3"), Key2:=Range("P3"), Header:=xlYes, _
Order1:=xlAscending, Order2:=xlDescending
Worksheets("Portfolio Tracker").Protect Password:="Password", AllowSorting:=True, AllowFiltering:=True, AllowUsingPivotTables:=True, DrawingObjects:=True, Scenarios:=False, AllowDeletingRows:=True
End Sub
任何帮助都会很棒,因为它让我发疯。
【问题讨论】:
-
您是否尝试过使用宏录制器执行此操作?它应该像清理记录器输出的代码一样简单。
-
未测试但检查密钥和命令。也许像
Key1:=Range("P3"), Key2:=Range("F3"), Header:=xlYes, Order1:=xlDescending, Order2:=xlDescending?
标签: excel vba sorting columnsorting