Как сделать операцию сортировки excel с переменными?

Я пытаюсь сделать сортировку, используя этот код:

Range(BRPdest).Activate ActiveWorkbook.Worksheets("Batch Record Progress").sort.SortFields.clear ActiveWorkbook.Worksheets("Batch Record Progress").sort.SortFields.Add Key:= _ Range("D12"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _ xlSortNormal With ActiveWorkbook.Worksheets("Batch Record Progress").sort .SetRange Range(ActiveCell.Column & ":12", ActiveCell.Column & ":125") .Header = xlGuess .MatchCase = False .Orientation = xlTopToBottom .SortMethod = xlPinYin .Apply End With 

я записал макрос и получил это, но у него были статические диапазоны

Мне нужно, чтобы найти соответствующий столбец, который должна делать первая строка,

он должен сортировать столбец от ячейки 12 до 125 (или меньше), данные в ячейках форматируются «A12345»,

когда код попадает в строку .apply, он выдает ошибку 1004, я думаю, что может быть что-то не так с моим ключом: (Я также попытался поставить ключ таким же, как диапазон с той же ошибкой)

Может ли кто-нибудь указать, что я делаю неправильно?

заранее спасибо

благодаря комбинации из клина и ASH

Я решил это

  Range(BRPdest).Activate ActiveWorkbook.Worksheets("Batch Record Progress").sort.SortFields.clear ActiveWorkbook.Worksheets("Batch Record Progress").sort.SortFields.Add Key:= _ Range(Cells(12, ActiveCell.Column), Cells(125, ActiveCell.Column)), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal With ActiveWorkbook.Worksheets("Batch Record Progress").sort .SetRange Range(Cells(12, ActiveCell.Column), Cells(125, ActiveCell.Column)) .Header = xlGuess .MatchCase = False .Orientation = xlTopToBottom .SortMethod = xlPinYin .Apply End With 

Мне пришлось изменить диапазон до предложенного клина и использовать его в ключе, а также

большое спасибо

Свойство .Column возвращает числовой индекс столбца, а не буквенную букву, которую вы используете в задании диапазона. Вы можете использовать (лист) .Cells (строка, столбец), чтобы ссылаться на один диапазон ячеек, используя числовую ссылку на строку и столбец.

 Range(BRPdest).Activate ActiveWorkbook.Worksheets("Batch Record Progress").sort.SortFields.clear ActiveWorkbook.Worksheets("Batch Record Progress").sort.SortFields.Add Key:= _ Range("D12"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _ xlSortNormal With ActiveWorkbook.Worksheets("Batch Record Progress").sort .SetRange Range(Cells(12,ActiveCell.Column), Cells(125,ActiveCell.Column)) .Header = xlGuess .MatchCase = False .Orientation = xlTopToBottom .SortMethod = xlPinYin .Apply End With 

Если размер данных, которые вы сортируете, может отличаться, вы, вероятно, захотите найти последнюю строку в своем наборе данных вместо того, чтобы полагаться на номер фиксированной строки.

  • Поиск макроса для восходящей и нисходящей командной кнопки с возможностью поддержки других соответствующих строк данных
  • Python: пакетное переименование файлов в каталоге с использованием предопределенного списка, сортировка по дате, созданная
  • Попытка сортировать листы в порядке убывания по значениям ячеек
  • Переупорядочить файл csv по именам заголовков
  • Как cutsom сортировать лист Excel в VBA
  • Алфавитная сортировка и фильтрация комбинированного поля, которое автоматически заполняется с использованием имен листов
  • Как сортировать столбец в листе Excel
  • Сортировка буквенно-цифровых значений
  • Проверка данных Excel не будет сортироваться по значению столбца
  • Метод VBA - .Sort превращает данные в TRUE
  • Сортировка строк в листе на основе двух значений, вводимых в ячейки в виде строковых переменных (или исходных массивов)
  • Давайте будем гением компьютера.