返回列表 上一主題 發帖

橫向排序問題

橫向排序問題

直向排序在EXCEL中已有排序選項功能。
但是,我想進行橫向順序排序, 例如:
A1=6、B1=19、C1=2、D1=5,排成: A1=2、B1=5、C1=6、D1=19,
A2=52、B2=19、C2=7、D2=16、E2=1,橫向順序排成:1、7、16、19、52
如何用VBA處理?

EXCEL橫向排序,排序完畢後,會出現空格,無法達到真正的橫向排序。
我有1萬筆資料,想要做到橫向排序,不知道是否有大大可以協助的。
用VBA做到這個功能。

TOP

回復 6# register313
多謝幫忙, 正是我想要的.

TOP

回復 5# pcwh3
  1. Sub SORT()
  2. For R = 6 To [A65536].End(xlUp).Row
  3.     If Cells(R, "G") <> "" Then
  4.        Range(Cells(R, "G"), Cells(R, "G").End(xlToRight)).Select
  5.        Selection.SORT Key1:=Cells(R, "G"), Order1:=xlAscending, Header:=xlGuess, _
  6.          OrderCustom:=1, MatchCase:=False, Orientation:=xlLeftToRight, SortMethod _
  7.          :=xlStroke, DataOption1:=xlSortNormal
  8.        R = R + 1
  9.     End If
  10. Next R
  11. End Sub
複製代碼

TOP

回復 4# wang

多謝各位幫忙, 了解一二了.

請問如果格式如附件所示,我要將G6起至AR200(暫定)範圍進行橫向順序排列,範圍之內一定會有空格出現的。
我不想逐行逐行用人手改動, VBA可以做到嗎?應如何寫法?
謝謝.
test20120215.zip (8.99 KB)

TOP

本帖最後由 wang 於 2012-2-15 01:27 編輯

橫向排序
資料>排序>選項>方向>循列排序

R = 1
Do Until Cells(R, 1) = ""
    Range(Cells(R, 1), Cells(R, 1).End(xlToRight)).Select
    Selection.SORT Key1:=Cells(R, 1), Order1:=xlAscending, Header:=xlGuess, _
        OrderCustom:=1, MatchCase:=False, Orientation:=xlLeftToRight, SortMethod _
        :=xlStroke, DataOption1:=xlSortNormal
        R = R + 1
Loop
Cells(R, 1).Select

TOP

回復 1# pcwh3

play.gif
學海無涯_不恥下問

TOP

回復 1# pcwh3
  1. Sub SORT()
  2. Dim ARR()
  3. R = 1
  4. Do Until Cells(R, "A") = ""
  5.    LastC = Cells(R, 256).End(xlToLeft).Column
  6.    ReDim ARR(LastC)
  7.    For C = 1 To LastC
  8.      ARR(C) = WorksheetFunction.Small(Range("A" & R).Resize(1, LastC), C)
  9.    Next C
  10.    For C = 1 To LastC
  11.      Cells(R, C) = ARR(C)
  12.    Next C
  13.    R = R + 1
  14. Loop
  15. End Sub
複製代碼

TOP

        靜思自在 : 有多少力量就做多少事,不要心存等待,等待才會落空。
返回列表 上一主題