我一直無法直接找到如何在 Excel 中執行我可以使用“排序”選單執行的操作,但似乎無法通過公式找到如何在我更改給定值時更新我的??排序。
我的桌子看起來像這樣
| 票號 | 1 | 2 | 3 |
|---|---|---|---|
| 產品 | 產品A | 產品B | 產品A |
| 到期日: | 8/20/2021 | 8/23/2021 | 8/18/2021 |
| 最后更新: | 8/16/2021 | 8/17/2021 | 8/15/2021 |
| 筆記 | 不重要 | 不重要 | 不重要 |
所以我想要做的是讓我的工單列按最近的截止日期動態排序到最近的最近,然后按上次更新欄位從最舊到最近的共享截止日期排序。
我可以通過選擇在選項選單中從左到右排序來簡單地在 Sort 選單中做到這一點,但是我能找到的一切試圖弄清楚如何做到這一點都假設第一行是靜態的而不是第一列(甚至制作一個此處的表格假定標題行而不是任何列版本),也許只是我,但我似乎無法找到一種方法來調整我正在尋找的公式以使其正常作業。
一天結束時,我只需單擊“排序”按鈕并單擊“確定”即可,但我希望它在我對截止日期進行更改時進行更新。任何幫助,將不勝感激。
uj5u.com熱心網友回復:
把它放在作業表模塊中:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim lastclm As Long
lastclm = Cells(1, Columns.Count).End(xlToLeft).Column
Dim rng As Range
Set rng = Range(Cells(1, 2), Cells(5, lastclm))
If Intersect(rng, Target) Is Nothing Then Exit Sub
On Error GoTo safeout
Application.EnableEvents = False
Dim kyRng As Range
Set kyRng = Range(Cells(3, 2), Cells(3, lastclm))
With Me.Sort
.SortFields.Clear
.SortFields.Add2 Key:=kyRng, Order:=xlAscending
.SetRange rng
.Orientation = xlLeftToRight
.Apply
End With
safeout:
Application.EnableEvents = True
End Sub
現在,隨著表格中的內容發生變化,它將自動在第三行從左到右排序。
uj5u.com熱心網友回復:
如果不需要就地進行排序,則可以使用 Sortby:
=SORTBY(B1:D5,B3:D3,-1,B4:D4,1)

轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/341095.html
標籤:擅长
