Необходимо убедиться, что значение в расширенном диапазоне полей фильтра настроено на включение строк под строками заголовка.
Вы можете установить это значение вручную или использовать макрос, чтобы сделать это за вас.
Например, в моей таблице у меня есть строки 1-3 в виде многострочных заголовков. Я постоянно добавляю строки данных ниже. Следующий макрос устанавливает диапазон полей фильтра для включения строк 4 - последней заполненной строки в электронной таблице. Это гарантирует, что любая сортировка будет обрабатывать строку 3 как заголовок (при условии, что вы отметите флажок «мои данные включают заголовки»)
(Я включаю это в конце более сложного макроса, чтобы гарантировать, что свойство Field Range всегда актуально после импорта данных - проще, чем не забывать каждый раз переустанавливать его вручную)
Sub selector()
Sheets("AESummary").Select
Sheets("AESummary").Activate
' find last row containing data in column A (column A will always be populated in this dataset)
Set WS = Worksheets("AESummary")
With WS
Set LastCellC = .Cells(.Rows.Count, "A").End(xlUp)
LastCellRowNumber = Application.WorksheetFunction.Max(LastCellC.Row) + 1
End With
' set the filter Field Range value to include Row 4 to the last populated row in the worksheet
Rows("4:" & LastCellRowNumber).AdvancedFilter Action:=xlFilterInPlace, Unique:=False
End Sub