Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
VBA For Excel Часть 02.doc
Скачиваний:
2
Добавлен:
01.05.2025
Размер:
1.08 Mб
Скачать

Некоторые замечания по запуску макроса из событийных процедур

Как-то я написал два макроса, сортировки по возрастанию и убыванию, но в макросы не записал выбор колонки таблицы для сортировки. Макрос сортировки по возрастанию выглядел следующим образом:

Sub СортировкаВозрастания()

' СортировкаВозрастания Макрос

' Макрос записан 20.07.04 (Тихвинский В.И.)

'

Selection.Sort Key1:=Range(“B3”), _

Order1:=xlAscending, Header:=xlGuess, _

OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom

End Sub

Я внес изменения в коде макроса заменив адресацию ячейки “B3” на свойство соответствующего объекта - ActiveCell.Address:

Sub СортировкаВозрастания()

' СортировкаВозрастания Макрос

' Макрос записан 20.07.04 (Тихвинский В.И.)

'

Selection.Sort Key1:=Range(ActiveCell.Address), _

Order1:=xlAscending, Header:=xlGuess, _

OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom

End Sub

Когда я запускал данный макрос через меню Excel, он работал нормально. Но когда я запустил его от событийной процедуры объекта CommandButton1, расположенной на листе Excel:

Private Sub CommandButton1_Click()

СортировкаВозрастания

End Sub

Возникла ошибка: “Метод Sort класса Range завершен не верно”. Данная ошибка происходила потому, что в момент нажатия на кнопку CommandButton1, выделение переносилось на элемент управления, и ни одна из ячеек активного листа не была выделена во время запуска метода Sort . Ошибку удалось устранить используя метод выделения активной ячейки ActiveCell.Select:

Sub СортировкаВозрастания()

' СортировкаВозрастания Макрос

' Макрос записан 20.07.04 (Тихвинский В.И.)

'

ActiveCell.Select

Selection.Sort Key1:=Range(ActiveCell.Address), _

Order1:=xlAscending, Header:=xlGuess, _

OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom

End Sub

Примечание: В MS Office XP при выполнении методов ячеек листа Excel, фукус автоматически переносится с элемента управления на активную ячейку, и программное перенесение фокуса на ячейки не требуется.

Назначение управляющих клавиш для запуска готового макроса Назначение управляющих клавиш макросам через меню приложений

В программе Word управляющие клавиши назначаются следующим образом:

1) Войти в меню: Вид-Панель Инструментов-Настройка

2) В окне “Настройка” выбрать закладку “Команды” и кнопку “Клавиатура…” см. рис 17.

рис 17

3)В появившемся окне в разделе “Категории:” выбрать – Макросы. В разделе “Макросы:” выбрать имя того макроса, в которому назначается горячая клавиша. В разделе “Сохранить изменения в…” выбрать тот документ, в котором сохранятся назначенные горячие клавиши к макросу. см рис 18.

4) Перейти в пункт: “Новое сочетание клавиш”

5) Нажать необходимую комбинацию управляющих клавиш.

6) Закрыть окно для назначения управляющих клавиш.

Рис 18 Назначение управляющих клавиш в Word

В программе Excel управляющие клавиши назначаются следующим образом:

  1. Войти в меню: Сервис-Макрос-Макросы

  2. В появившемся окне выбрать необходимое имя макроса и нажать кнопку “Параметры…” рис 19.

рис 19

  1. В появишемся окне в перейти в раздел “сочетание клавиш” см. рис 20.

  2. В разделе “сочетание клавиш” в режиме погашеного Caps Loock (прописные буквы) ввести латинскую букву в сочетании с клавишей Shift или без нее, и нажать кнопку ОК.

рис 20 окно назначения управляющих клавиш макросу в Excel.

Примечание:

Через меню приложения Excel можно назначить сочетание клавиш только в комбинации с клавишей CTRL или CTRL+SHIFT, но программно в данном приложении можно ввести и другие комбинации управляющих клавиш.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]