Похожие вопросы

Как отключить "эта книга содержит макросы"
Запуск макроса одним щелчком мыши по определенной ячейке
Макрос Excel для форматирования ячеек на основе значений и группирования пустых строк ниже
Сортировка с помощью макроса
(Индекс вне диапазона) Ошибка 9
Макрос, который ищет слово для Слова и создает таблицу
Макрос для заполнения ячеек из столбца последовательно при нажатии на кнопку
Как создать макрос / короткие сокращения в Eclipse?
Как записать "макрос", который сохраняет веб-страницы в формате PDF в OSX
Outlook 2010 запуск сценария через правила
Макросов/VBA, чтобы добавить текст на колонки, если есть текст, присутствующий в другую ячейку
Как разделить данные Excel из 1 столбца на 8 столбцов, сохраняя при этом данные в определенном порядке?
Имя серии диаграмм ссылка на адрес ячейки Excel 2010 VBA
Excel VBA-запустить макрос, если выбрана ячейка в диапазоне
Обновление нескольких книг в excel

Сортировка с помощью макроса

У меня есть электронная таблица с 8 столбцами данных. (Строка 1 содержит заголовки).

Я пытаюсь записать макрос, который потом не нужно редактировать.

Я нажимаю запись макроса, я выделяю мои данные, я иду на вкладку Данные и выберите сортировать. Затем я продолжаю сортировать данные в порядке убывания по значению столбца D. Я нажимаю остановить запись макроса.

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

Как я могу записать макрос, чтобы сделать то, что я хотел бы без редактирования макросов в VBA?

Спасибо за помощь.

Sub Macro1()
'
' Macro1 Macro
'

'
    Cells.Select
    ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Add Key:=Range("D2:D1316" _
        ), SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal
    With ActiveWorkbook.Worksheets("Sheet1").Sort
        .SetRange Range("A1:H1316")
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
End Sub
5
задан Joe
источник

1 ответов

это будет сортировать так же для вас.

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

например, если вы хотите отсортировать по двум ключам, вы можете использовать key2, etc.

Sub Joe()

'Define the variables
Dim rngData As Range
Dim rngKey As Range

'Set the variables
Set rngData = Range("A:H")
Set rngKey = Range("D1")

'Perform the Sort
rngData.Sort key1:=rngKey, order1:=xlDescending, Header:=xlYes

End Sub
1
отвечен Raystafarian 2014-06-05 13:57:45
источник

Другие вопросы macros microsoft-excel vba