0

これがテーブルのサンプルです(不気味なサンプルデータを使用)

|列 A |列 B |列 C |列 D |列 E
+------------+----------+--------+----------+-----
|数値 |値 |X |日付 |10 進数
|1 | AA|X |2012/01/01|.1
|2 | BB|X |2012/02/01|.2
|3 | CC|X |2012/03/01|.3
|4 | DD|X |2012/04/01|.4
|5 | EE|X |2012/05/01|.5

何をする必要がありますか:

  • マクロの「値」(この例では列 B) に従ってテーブルを並べ替えます

条件:

  • ヘッダー値は変更されません
  • Col C から Col D または Col A... B... E... に変更されるため、「Value」という単語を含むヘッダーを検索する必要があります。
  • 列ヘッダーは常に 1 行目にとどまる

私がこれまでに行ったこと:

  • 力ずくで値を...(BAD!)
  • ヘッダーを検索して、ヘッダー「値」を含む列を見つけます
  • 列の文字/数字を取得して変数に格納する

問題:

  • 列の文字または数字を並べ替えの基準として使用します。(つまり、範囲 (colLetter & ":" & colLetter))

どんな助けでも感謝します

4

1 に答える 1

0
Sub Tester()

Const SORT_HEADER As String = "Value"
Dim sht As Worksheet, f As Range


    Set sht = Worksheets("Sheet1")

    Set f = sht.Rows(1).Find(SORT_HEADER, LookIn:=xlValues, lookat:=xlWhole)

    If Not f Is Nothing Then

        sht.Range("A1").CurrentRegion.Sort _
            Key1:=sht.Columns(f.Column), Order1:=xlAscending, Header:=xlYes

    Else
        MsgBox "'" & SORT_HEADER & "' column not found!"
    End If

End Sub
于 2012-10-02T17:39:05.717 に答える