VBA Выбрать все данные и отсортировать по заголовку столбца «Имя» - PullRequest
0 голосов
/ 10 июля 2020

Я изо всех сил пытаюсь понять, как я могу выбрать все данные и отсортировать их на основе имени заголовка столбца «Service Ticket». Существует множество примеров того, как отсортировать «жестко запрограммированный» столбец. Моя проблема заключается в том, что импортированная таблица данных часто может иметь другое количество столбцов, что приводит к изменению интересующего столбца.

1 Ответ

1 голос
/ 10 июля 2020

Похоже, вы уже нашли VBA для сортировки по заданному столбцу. Используйте Find, чтобы найти интересующий вас заголовок, затем присвойте номер столбца переменной и используйте эту переменную вместо ссылки на столбец stati c.

Sub SortSomeColumn()

    Dim SvcTicketRange As Range
    Dim SortColumn As Integer

    With MyWorksheet
    
        Set SvcTicketRange = .Rows(1).Find(What:="Service Ticket", After:=.Cells(1, 1), LookIn:=xlValues, _
            LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False)
        
        If Not SvcTicketRange Is Nothing Then
            SortColumn = SvcTicketRange.Column
            
            .Sort.SortFields.Clear
            .Sort.SortFields.Add Key:=Range(.Cells(1, SortColumn), .Cells(100, SortColumn)), _
                SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
                
            With .Sort
                .SetRange Range("A1:E100")
                .Header = xlYes
                .MatchCase = False
                .Orientation = xlTopToBottom
                .SortMethod = xlPinYin
                .Apply
            End With
            
        Else
            'define what you want to do if the Service Ticket header is not found
            
        End If
        
    End With
    
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...