我想在vba(在一個較大的宏中間)由兩個級別排序表。我試圖錄制宏,正是我想要的,但範圍僅限於這一系列數據。範圍的結束可以改變,所以我添加了一個計數器的代碼,基本上告訴我在哪裏範圍結束使用計數器來確定範圍的兩列的排序
我下面是我的代碼的簡化版本(我將計數器設置爲200,以簡化事情,但這將改變我的代碼)
我想要的是按列C和列A排序範圍(「A1」,AB「& counterT),所以如果有一個更簡單的方法來做到這一點(我假設)我可以自由地忽略我的代碼
我暫停了我的代碼(你會注意到下面)來突出顯示真正給我帶來麻煩的部分,但我不完全相信如果我修復那部分該代碼仍然會工作,這可能只是當前的問題,而不是整個問題。 謝謝你的幫助!
Sub Sort
Dim counterT As Long
counterT = 200
Dim rDataToSort As Range, rSortData As Range
Set rSortData = Range("C4", C" & CounterT)
Set rDataToSort = Range("A4", AB" & CounterT)
我在這裏暫停代碼原因我不知道如何添加第二級(A列)這裏
With ActiveWorkbook.Worksheets("Output").Sort
.SortFields.Clear
.SortFields.Add Key:=rSortData, SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
.SetRange rDataToSort
.Header = xlNo
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
對不起,關於我最初的問題,它不是很清楚。我編輯我的代碼以反映我期望的實際範圍(因爲之前他們錯了)。通過排序條件的循環是有道理的,我認爲它會起作用,但我似乎無法將你的代碼轉換成可運行的東西,請你詳細說明一下(我不明白在「 ......「部分),它也給我在」鍵: - 「部分上的錯誤,我認爲這部分是因爲短劃線。再次感謝您的幫助 –