好吧,這顯然是代碼的一部分,但這部分我不斷收到很多不同的錯誤,作為一個初學者,我真的不明白如何解決它們。
我在我的作業簿和作業表中,所以這些是我想在這里排除的第一個引數,但我發現我的自我生成錯誤而不是更短的代碼,所以我尋求一些幫助/指導。
Sub SortHeaderSVA()
Worksheets("PR11_P3").ListObjects("PR11_P3_Tabell").ListColumns("SVA").Range.Cells(1).Select
'cant do anything of the soriting or so if I dont do above which is, well has to be a simpler way to select a header in a table that is in the current sheet and active workbook..?
ActiveWorkbook.Worksheets("PR11_P3").ListObjects("PR11_P3_Tabell").Sort. _
SortFields.Clear
'also wierd, why dose the sort needs to be cleard first if there is no value earlier?
ActiveWorkbook.Worksheets("PR11_P3").ListObjects("PR11_P3_Tabell").Sort. _
SortFields.Add Key:=Range("PR11_P3_Tabell[[#All],[SVA]]"), SortOn:= _
xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("PR11_P3").ListObjects("PR11_P3_Tabell").Sort
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
End Sub
有很多不同的選擇方法等等,但我可能不知道僅在 VBA 中輸入的正確命令,所以我記錄宏并進行不同的實驗。
uj5u.com熱心網友回復:
除非絕對必要,否則不要選擇物件。洗掉這一行:
Worksheets("PR11_P3").ListObjects("PR11_P3_Tabell").ListColumns("SVA").Range.Cells(1).Select
SortFields.Clear用于確保清除之前的設定。畢竟,我們正在向集合添加排序。您可以通過注釋掉該SortFields.Clear行并多次運行來測驗它。接下來從功能區打開資料選項卡并選擇排序。.Sort您將看到每當您呼叫該方法時都會運行多種排序。

Public Sub SortHeaderSVA()
With PR11_P3_Tabell.Sort
.SortFields.Clear
.SortFields.Add2 Key:=PR11_P3_Tabell.ListColumns("SVA").Range, SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
End Sub
Public Function wsPR11_P3() As Worksheet
Set wsPR11_P3 = ThisWorkbook.Worksheets("PR11_P3")
End Function
Public Property Get PR11_P3_Tabell() As ListObject
Set PR11_P3_Tabell = wsPR11_P3.ListObjects("PR11_P3_Tabell")
End Property
uj5u.com熱心網友回復:
對 Excel 表進行排序
Option Explicit
Sub SortHeaderSVA()
Dim wb As Workbook: Set wb = ThisWorkbook
Dim ws As Worksheet: Set ws = wb.Worksheets("PR11_P3")
Dim tbl As ListObject: Set tbl = ws.ListObjects("PR11_P3_Tabell")
Dim tlc As ListColumn: Set tlc = tbl.ListColumns("SVA")
With tbl.Sort
.SortFields.Clear
.SortFields.Add _
Key:=tlc.Range, _
SortOn:=xlSortOnValues, _
Order:=xlDescending, _
DataOption:=xlSortNormal
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
End Sub
Sub SortHeaderSVANoVariables()
With ThisWorkbook.Worksheets("PR11_P3").ListObjects("PR11_P3_Tabell").Sort
.SortFields.Clear
.SortFields.Add _
Key:=.Parent.ListColumns("SVA").Range, _
SortOn:=xlSortOnValues, _
Order:=xlDescending, _
DataOption:=xlSortNormal
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
End Sub
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/455212.html
