0

这是表格的示例(带有令人毛骨悚然的示例数据)

|Col A |Col B |Col C |Col D |Col E
+------------+----------+--------+----------+-----
|数字 |值 |X |日期 |十进制
|1 | AA|X |2012/01/01|.1
|2 | BB|X |2012/02/01|.2
|3 | 抄送|X |2012/03/01|.3
|4 | DD|X |2012/04/01|.4
|5 | EE|X |2012/05/01|.5

需要做什么:

  • 根据宏中的“值”(在本例中为 Col B)对表格进行排序

条件:

  • 标头值不会改变
  • 我必须搜索包含单词“Value”的标题,因为它从 Col C 更改为 Col D 或 Col A...B...E...
  • 列标题总是留在第一行

到目前为止我做了什么:

  • 蛮力值...(坏!)
  • 搜索标题以查找包含标题“值”的列
  • 获取列字母/数字并存储在变量中

问题:

  • 使用列字母或数字作为排序的基础。(即范围 (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 回答