Как закрыть диалоговое окно в excel
13.03.2010 10:14 | Автор: Автор | | |
Для закрытия документа, т. е. удаления документа из памяти компьютера, а также для завершения работы в Excel можно использовать обычные приемы закрытия окон приложения. При этом следует различать закрытие документа и закрытие Excel вместе со всеми документами. Для закрытия только текущего документа необходимо использовать один из следующих способов: - щелкнуть по кнопке закрытия документа; - нажать комбинацию Ctrl+F4 или Ctrl+W; - выполнить команду Закрыть (Файл); - выполнить двойной щелчок по кнопке системного меню окна документа. Для закрытия Excel можно использовать один из следующих способов: - щелкнуть по кнопке закрытия приложения; - нажать комбинацию Alt+F4; - выполнить команду Выход (Файл); - выполнить двойной щелчок по кнопке системного меню приложения. Для закрытия всех окон документов сразу, но без закрытия Excel, необходимо, удерживая нажатой клавишу Shift, выбрать пункт меню Файл и выполнить команду Закрыть все (при обычном открытии подменю Файл, эта команда не появляется).
Если какой-либо закрываемый документ после изменения не был сохранен, то после команды закрытия появится информационное окно с соответствующим предупреждением. В этом случае требуется выбрать одно их следующих действий: - закрыть окно, сохранив документ (кнопка Да); - закрыть окно, не сохраняя документ (кнопка Нет); - не закрывать окно и продолжить работу в нем (кнопка Отмена или клавиша Esc). Пример 11. Установка количества запоминаемых имен документов. Открытие и закрытие документа Запустите Excel и выполните команду Параметры.
(Сервис). В появившемся диалоговом окне на вкладке Общие в поле, находящемся рядом с переключателем Помнить список файлов до введите число 5 и нажмите кнопку ОК. Действие 2 Щелкните по инструменту Открыть JSJ панели Стандартная. В появившемся диалоговом окне щелкните по файлу Первая книга. xls, а затем по левой секции кнопки Открыть.
Убедитесь, что открылся первый документ (в заголовке окна Excel появилась надпись Microsoft Excel — Первая книга). Нажмите Ctrl+O, в появившемся диалоговом окне Открытие документа дважды щелкните по файлу Вторая KHuaa. xls. Убедитесь, что открылся второй документ (в заголовке окна Excel появилась надпись Microsoft Excel — Вторая книга).
Если вы работаете с Excel изо дня в день, сочетания горячих клавиш помогут сократить рабочий день и сэкономить много времени. Кроме того, они также могут удивить ваших коллег и начальника, заставив их думать, что вы настоящий мастер Excel ))
«Вам не нужно знать все функции. Просто освоите те, которые вам нужны регулярно, и у вас все получится отлично ».
Вот список из 200+ сочетаний клавиш Excel, которые сэкономят вам массу времени.
Работа с книгой
- Создайте новую пустую книгу - Ctrl N
- Отображает диалоговое окно «Открыть» для открытия / поиска файла - Ctrl+O
- Сохраняет книгу с текущим именем файла, расположением и типом файла. - Ctrl+S
- Открывает диалоговое окно «Сохранить как». - F12
- Открывает окно предварительного просмотра. - Ctrl+F2
- Развернуть или восстановить окно выбранной книги. - Ctrl+F10
- Свернуть книгу. - Ctrl+F9
- Перейти к следующей книге. - Ctrl+Tab
- Перейти к предыдущей книге. - Ctrl+Shift+Tab
- Закрыть текущую книгу. - Alt+F4
Редактирование ячеек
- Редактировать активную ячейку. - F2
- Начать новую строку в той же ячейке. - Alt+Enter
- Выберите один символ справа от курсора. - Shift + →
- Выберите один символ слева от курсора. - Shift + ←
- Перейти на одно слово справа от курсора. - Ctrl + →
- Перейти на одно слово слева от курсора. - Ctrl + ←
- Выберите одно слово справа от курсора. - Ctrl + Shift + →
- Выберите одно слово слева от курсора. - Ctrl + Shift + ←
- Удалить один символ слева от курсора. - Backspace
- Удалить символ справа от курсора. - Delete
- Удалить до конца строки (от курсора). - Ctrl + Delete
- Отменить запись. - Esc
Общие
- Открывает справку. - F1
- Повторяет последнюю команду или действие. - Ctrl+Y
- Повторяет последнее действие. - F4
- Отменить. - Ctrl+Z
- Проверка орфографии. - F7
- Применить фильтр данных. - Ctrl + Shift + L
- Активировать фильтр (когда выбрана ячейка с фильтром). - Alt + ↓
- Отобразить диалоговое окно "Перейти к". - F5
- Отобразить диалоговое окно "Перейти к". - Ctrl + G
- Пересчитать все книги. - F9
- Рассчитать активный рабочий лист. - Shift + F9
- Откройте меню печати. - Ctrl + P
- Включите конечный режим. - End
Ввод данных
- Активировать ячейку или двигаться вниз. - Enter
- Активируйте и двигайтесь вверх. - Shift + Enter
- Войдите и двигайтесь вправо. - Tab
- Войдите и двигайтесь влево. - Shift + Tab
- Введите одинаковые данные во все выбранные ячейки. - Ctrl + Enter
- Показать список автозаполнения. - Alt + ↓
- Заполнить. - Ctrl + D
- Залить вправо. - Ctrl + R
- Вставить текущую дату. - Ctrl + Shift + ;
- Вставить текущее время. - Ctrl + Shift + :
- Начать новую строку в той же ячейке. - Alt + Enter
- Отменить ввод ячейки. - ESC
Навигация
- Переместить на одну ячейку вверх. - ↑
- Переместите одну ячейку вниз. - ↓
- Переместите одну ячейку вправо. - →
- Переместите одну ячейку влево. - ←
- На один экран вниз. - PageDown
- На один экран вверх. - PageUp
- Переместите на один экран вправо. - Alt + PageDown
- Переместите на один экран влево. - Alt + PageUp
- Переместитесь к правому краю области данных. - Ctrl + →
- Перейти к левому краю области данных. - Ctrl + ←
- Переместитесь к нижнему краю области данных. - Ctrl + ↓
- Перейти к верхнему краю области данных. - Ctrl + ↑
- Переместитесь в нижнюю правую активную ячейку на листе. - Ctrl + End
- Перейти к первой ячейке в текущей книге - Ctrl + Home
- Перейти в начало ряда. - Home
- Перейти к следующему листу. - Ctrl + PageDown
- Перейти к предыдущему листу. - Ctrl + PageUp
Вырезать, копировать, вставить
Удаление
- Очистить все - Alt + H + E + A
- Только чистые форматы. - Alt + H + E + F
- Только очистить содержимое. - Alt + H + E + C
- Очистить только гиперссылки. - Alt + H + E + L
- Удалить только комментарии. - Alt + H + E + M
Активация
- Выберите текущую книгу / Выбрать все. - Ctrl + А
- Выберите видимые ячейки в текущем регионе. - Alt + ;
- Выберите текущую область вокруг активной ячейки. - Ctrl + Shift + *
- Выберите всю строку. - Shift + Space
- Выберите весь столбец. - Ctrl + Space
- Выделите все ячейки, содержащие комментарии. - Ctrl + Shift + О
- Выберите "Различия в строках". - Ctrl + \
- Выберите "Различия в столбцах". - Ctrl + Shift +|
- Выберите Прямые прецеденты. - Ctrl + [
- Выбрать все прецеденты. - Ctrl + Shift +
- Выберите Прямые иждивенцы. - Ctrl + ]
- Выберите всех иждивенцев. - Ctrl + Shift + >
- Отобразить диалоговое окно "Перейти к". - Ctrl + G
Выделение
- Выделение вправо на одну ячейку. - Shift + →
- Выделение влево на одну ячейку. - Shift + ←
- Выделить вверх на одну ячейку. - Shift + ↑
- Выделить на одну ячейку вниз. - Shift +↓
- Расширьте выделение вправо до последней ячейки. - Ctrl + Shift + →
- Расширьте выделение влево до последней ячейки. - Ctrl + Shift + ←
- Расширить выделение вверх до последней ячейки. - Ctrl + Shift + ↑
- Расширить выделение вверх на один экран. - Shift + PageUp
- Расширить выделение на один экран вниз. - Shift + PageDown
- Расширить выделение вправо на один экран. - ALT + Shift + PageUp
- Расширить выделение влево на один экран. - ALT + Shift + PageDown
- Расширить выделение до начала строки. - Shift + Home
- Расширить выделение до первой ячейки на листе. - Ctrl + Shift + Home
- Расширить выделение до последней ячейки на листе. - Ctrl + Shift + End
- Переключить режим расширения выделения. - F8
Выравнивание
- Выровняйте содержимое по центру ячейки. - Alt + H + A + C
- Выровняйте содержимое по левому краю ячейки. - Alt + H + A + L
- Выровняйте содержимое по правому краю ячейки. - Alt + H + A + R
- Выровняйте содержимое по середине ячейки. - Alt + H + A + M
Скрыть / Показать (строки, столбцы, объекты)
- Скрыть выбранные строки. - Ctrl + 9
- Скрыть выбранные столбцы. - Ctrl + 0
- Показать скрытые строки в выделении. - Ctrl + Shift + 9
- Показать скрытые столбцы в выделении. - Ctrl + Shift + 0
- Показать / скрыть объекты. - Ctrl + 6
Вставка
- Вставить новую строку в той же ячейке - Alt + Enter
- Вставить новый лист. - Shift + F11
- Вставить строку / ячейку (показывает диалоговое окно). - Ctrl + Shift + =
- Вставить текущую дату. - Ctrl + Shift + ;
- Вставить текущее время. - Ctrl + Shift + :
- Вставить таблицу. - Ctrl + Т
- Вставить гиперссылку. - Ctrl + K
- Вставьте имена аргументов в формулу. - Ctrl + Shift +A
- Вставить / изменить комментарий к ячейке. - Shift+ F2
- Удалить строку / ячейку (показывает диалоговое окно). - Ctrl + -
Форматирование
Связанные с формулами
- Вставить формулу автосуммы. - Alt + =
- При вводе формулы переключает ссылку на ячейку с абсолютной на относительную. - F4
- Развернуть / свернуть панель формул. - Ctrl + Shift + U
- Откройте диалоговое окно «Вставить функцию». - Shift + F3
- Введите формулу как формулу массива. - Ctrl + Shift + Enter
- Оцените часть формулы. - F9
- Выберите массив, содержащий активную ячейку. - CTRL + /
- Выберите все ячейки, на которые прямо или косвенно ссылаются формулы в выделенном фрагменте. - CTRL+ [
- Выберите ячейки, содержащие формулы, которые прямо или косвенно ссылаются на активную ячейку. - CTRL + ]
- Переключить отображение значения / формулы. - Ctrl + `
- Повторно проверяет зависимые формулы, а затем вычисляет все ячейки во всех открытых книгах. - Ctrl+ Alt + Shift + F9
Поиск и замена
- Отображение диалогового окна «Найти и заменить» («Найти выбранное»). - Ctrl + F
- Отображение диалогового окна «Найти и заменить» («Заменить выбранное»). - Ctrl + H
- Найти следующее совпадение. - Shift + F4
- Найдите предыдущее совпадение. - Ctrl + Shift + F4
Условное форматирование
- Откройте диалоговое окно условного форматирования. - Alt + O + D
- Очистить условное обозначение из выбранных ячеек. - Alt + H + L + C + S
- Очистить условное обозначение на всем листе. - Alt + H + L + C + E
Диаграммы
- Вставляет диаграмму в рабочий лист (используя выбранные данные). - Alt + F1
Имена, диапазоны
- Получите список всех определенных именованных диапазонов. - F3
- Создать именованный диапазон из выделенного. - Ctrl + Shift + F3
- Диалоговое окно определения имени. - Ctrl + F3
Сводная таблица
- Отобразить диалоговое окно «Вставить сводную таблицу». - Alt + N + V
- Откройте мастер сводной таблицы. - Alt + D + P
- Выберите всю сводную таблицу (за исключением фильтров отчета). - Ctrl + A
- Добавить / удалить галочку для выбранного поля в списке полей сводной таблицы. - Space
- Сгруппируйте выбранные элементы сводной таблицы. - Alt + Shift + →
- Разгруппируйте элементы сводной таблицы. - Alt + Shift + ←
- Выберите следующий элемент в списке полей сводной таблицы или списке элементов. - ↓
- Выберите предыдущий элемент в списке полей сводной таблицы или списке элементов. ↑
- Выберите последний видимый элемент в списке. - End
- Выберите первый видимый элемент в списке. - Home
- Откройте список полей для активной ячейки. - Alt + ↓
- Скрыть выбранный элемент или поле. - Ctrl + -
- Открывает диалоговое окно «Расчетное поле» (когда выбрано поле данных). - Shift + Ctrl + =
Прочее
- Восстановить размер окна. - Ctrl + F5
- Переместить окно. - Ctrl + F7
- Изменить размер окна. - Ctrl + F8
- Предыдущее окно. - Ctrl + Shift + F6
- Следующая панель. - F6
- Предыдущая панель. - F8
- Расширенный режим. - Shift + F10
- Показать контекстное меню. - Shift + F6
- Включает режим добавления к выделенному. - Shift + F8
Макросы
- Переключайтесь между Excel Worksheet и редактором VBA. - Alt + F11
- VB Help. - F1
- Просмотр обозревателя объектов. - F2
- Просмотр свойств. - F4
- Просмотр окна кода. - F7
- Просмотр немедленного окна. - Ctrl + G
- Просмотр контекстного меню. - Shift + F10
- Запустите Sub / UserForm. - F5
- Шаг - F8
- Переступить. - Shift + F8
- Выйти. - Ctrl + Shift + F8
- Перейти к курсору. - Ctrl + F8
- Переключить точку останова. - F9
- Очистить все точки останова. - Ctrl + F9
- Закройте редактор VBA и вернитесь к таблице Excel. - Alt + Q
Отлично! Раз вы дочитали или просто долистали статью до конца, значит вам это нужно. Поэтому чтобы каждый раз не возвращаться к списку, просто скачайте его и распечатайте. СКАЧАТЬ . Так вы всегда будет видеть его перед глазами и запоминать сочетания если будете ими пользоваться.
На этом у меня всё. 🏁 Если вам понравился сегодняшний урок, ставьте лайки 👍 и подписывайтесь на канал. Если хотите посмотреть еще уроки загляните в СОДЕРЖАНИЕ , обязательно еще что-нибудь присмотрите )) Спасибо!
Как закрыть Эксель, если не закрывается? Воспользуйтесь комбинацией Alt+F4, запустите «Диспетчер задач» и удалите процесс Excel, снимите задачу для приложения или просто перезагрузите компьютер / ноутбук (рекомендуется в крайнем случае). Ниже подробно рассмотрим, как действовать при возникновении подобных проблем, и какими методами можно закрыть программу.
Причины, почему не закрывается Excel
Существует множество причин, почему не закрывается Эксель, как и в случае с другими программами. К основным объяснениям можно отнести:
- Ошибка в программном коде.
- Конфликты с другими ПО.
- Загрязненная операционная система.
- Применение не подходящей версии Виндовс.
- Сбои работы жесткого диска.
- Дефицит оперативной памяти.
- Действие вирусов.
- Прочие причины.
Что делать
При возникновении зависания нужно сначала разобраться, как закрыть программу, если при нажатии на «крестик» Эксель не закрывается. Рассмотрим основные варианты.
Используйте горячие клавиши
Первое, что стоит сделать при возникновении подобных проблем — попробовать закрыть приложение с помощью комбинации горячих кнопок. Чаще всего работает Alt+F4. В ее задачи входит принудительное прекращение работы процесса.
Закройте приложение через специальную панель
Если рассмотренный метод не помогает, можно использовать еще один метод, как закрыть Эксель — сделать это с помощью вызова специальной панели. Для этого жмите на Ctrr+Alt+Del, после чего войдите в «Диспетчер задач» и во вкладку «Процессы». Здесь найдите нужный вариант с названием Excel, жмите правой кнопкой мышки и кликните «Снять задачу». Как вариант, можно зайти в раздел «Служба приложений» и отключить нужный софт там.
Специальная программа
Альтернативный вариант
Крайний метод, что делать, если не закрывается Эксель при выполнении всех рассмотренных выше шагов — принудительно перезапустить компьютер / ноутбук. После запуска программа будет закрыта, и ее можно будет снова запустить. При этом сохраняется риск сбоев во время работы, поэтому нужно определить причину.
Что еще сделать после закрытия / во время работы
Ситуация, когда не закрываются файлы Excel, нужно разобраться с дальнейшими шагами. Важно выявить причину и избежать подобных ситуаций в будущем. Сделайте следующие шаги.
Убедитесь, что Эксель не пользуется другим процессом
В ситуации, когда Excel занята другим процессом, эти данные будут отображаться в нижней части окна. Если параллельно какие-то приложения пытаются выполнить действия, Эксель не будет отвечать, и закрыть его не получится. В таком случае дождитесь, пока задание выполниться, после чего сделайте еще одну попытку.
Проверьте систему на вирусы
Если Excel не закрывается, проверьте ПК / ноутбук на вирусы. Проблемы с прекращением работы могут возникнуть на фоне действия вредоносного ПО. В случае его удаления можно попробовать закрыть контент, и это происходит без проблем.
Решение проблем с надстройками
Применение надстроек упрощает работу с Эксель, но параллельно могут возникать конфликты. Попробуйте запустить приложение без надстроек и проверьте, удастся ли закрыть приложение. При работе в Виндовс 10 кликните на Win+R, а после — Excel / safe. Далее жмите «ОК». Если проблему удалось устранить, кликните на «Файл», а далее «Параметры» и «Надстройки».
Выберите «Надстройки СОМ» и жмите на кнопку «Перейти». После очистки флажков жмите «ОК». После откройте и попробуйте закрыть Эксель. Если он все равно не закрывается, причина может быть в другом.
Убедитесь, что файл не создается другим приложением. В таком случае некоторые функции Excel могут работать некорректно.
Дополнительные советы
Жалобы, мол, не могу закрыть Эксель, часто встречаются в Интернете. Пользователи не могут разобраться с зависанием и часто решают вопрос кардинально и путем отключения ПК / ноутбука. Но в большинстве случаев проблему можно решить более простым путем:
- Убедитесь, что софт не закрывается именно из-за внутренних проблем. Бывают ситуации, что неисправность именно в компьютере. Распространенная ситуация, когда закрыть Эксель не удается из-за дефицита оперативной памяти или сбоях в работе процессора. В таком случае нужно попробовать закрыть другое «тяжелое» ПО и повторить попытку.
- Переустановите программу. Если с Excel регулярно возникают проблемы, возможно, он установился некорректно и требует перестановки. Попробуйте удалить и установить заново программу.
- Обновите Excel, если он регулярно не закрывается, до последней версии.
- Убедитесь, что версия и разрядность Виндовс соответствуют требованиям.
- Выждите время. Многие пользователи слишком торопятся и хотят, чтобы ПО закрывалось мгновенно. Но иногда программа немного зависает. Нужно просто подождать и закрыть ее через несколько минут.
Зная, как закрыть Эксель, и почему он не закрывается, вы сможете решить проблему с программой и исключить ее появление в будущем. Для начала перепробуйте приведенные выше методы, а перезапуск / выключение оставьте на крайний случай. Это связано с тем, что при грубой перезагрузки многая информация может быть утеряна. Также не забывайте сохраняться перед попыткой закрытия, чтобы не допустить потери важных файлов.
В комментариях расскажите, какой из приведенных советов вам действительно помог, и какие еще шаги можно реализовать для решения ситуации.
Несомненно каждый разработчик делает работу простого пользователя хоть немного, но проще. И конечно, порой просто необходима обратная связь от пользователя при выполнении некоторых программ. О ней и хочу сегодня рассказать.
Что я имею ввиду: есть ситуации, когда необходимо:
- сообщить пользователю о выполнении кода;
- получить от пользователя подтверждение на выполнение того или иного действия;
- запросить какие-то данные(число, текст для поиска, диапазон поиска и т.п.).
Простейшие запросы и подтверждения можно сделать при помощи уже встроенных диалоговых окон.
Из основных можно выделить три типа:
MsgBox - окно информирования пользователя с возможностью запроса действия (Да, Нет, Отмена и т.п.);
InputBox - окно запроса текстовой информации от пользователя (текст для поиска, дата, число и т.п.);
Application.InputBox - чуть более расширенная версия InputBox с возможностью указания не только текста и чисел, но и выделения диапазона ячеек (например для указания ячеек, в которых осуществлять поиск значения или которые необходимо закрасить).
MsgBox "Обработка завершена"
Все остальные параметры указывать не обязательно, но их использование несколько расширяет возможности данного диалогового окна.
Buttons - указывается тип выводимых кнопок и стиль окна. По умолчанию применяется vbOKOnly - одна только кнопка Ок:
Константы Buttons могут быть объединены между собой. Ниже приведен код, который показывает диалоговое окно с возможностью выбора одного из трех вариантов - Прервать, Повтор, Пропустить:
Следующий код показывает то же окно, но по умолчанию выделяет кнопку Пропустить
Вместо текстового представления констант можно применить их числовые значения:
Sub test() Dim lRetVal As Long 'для получения выбранного значения Retry_: lRetVal = MsgBox("Обработка завершена", 2 + 32 + 512) Select Case lRetVal Case 3 'vbAbort Exit Sub 'выходим из процедуры Case 4 'vbRetry GoTo Retry_ 'переход на метку Retry_ Case 5 'vbIgnore End Select End Sub
Нетрудно после этого предположить, что можно указать просто сумму данных чисел:
MsgBox "Обработка завершена", 546
Доступные константы значений возврата:
Константа | Значение | Нажатая кнопка |
---|---|---|
vboK | 1 | ОК |
vbCancel | 2 | Отмена |
vbAbort | 3 | Прервать |
vbRetry | 4 | Повтор |
vblgnore | 5 | Пропустить |
vbYes | 6 | Да |
vbNo | 7 | Нет |
Title - указывается текст заголовка окна. Например, можно указать либо что это ошибка, либо имя своего приложения:
MsgBox "Обработка завершена", vbOKOnly, "Мое приложение"
HelpFile - указывается имя файла-справки в формате .HLP. Применяется, если параметр Buttons указан как vbMsgBoxHelpButton. Файл справки должен существовать.
Context - целое число. Указывается индекс страницы файла-справки, которую необходимо открыть. Указывается только если указан параметр HelpFile.
Небольшой практический пример применения простого диалогового окна MsgBox.
Цель процедуры(макроса): очистить все ячейки листа.
Согласитесь, что неплохо бы перед этим запросить у пользователя решение - он согласен с этим и это является обдуманным решением или случайностью?
Так же на странице Полезные программы для Excel и VBA можно найти программу MsgBox Generator, которая просто и наглядно формирует коды показа MsgBox.
MsgBox, автоматически закрываемый по истечении указанного времени
Диалог MsgBox удобен, если надо проинформировать пользователя о каких-то событиях или предоставить ему выбор Да или Нет. Но в тоже время есть один недостаток: этот диалог не закроется, пока пользователь не нажмет хоть какую-то кнопку. Но бывает необходимо просто проинформировать и закрыть окно независимо от реакции пользователя. Показали окно, подождали секунд 5-7 и даже если пользователь ничего не нажал - закрыли окно и продолжили выполнение кода. Стандартно такой опции в MsgBox нет. Однако можно использовать функции API(это встроенные в ОС Windows функции, которые можно вызывать из любого языка программирования).
Код такого диалога:
Основную роль здесь играет строка:
Declare Function MessageBoxTimeOut Lib "User32" Alias "MessageBoxTimeoutA" (ByVal hwnd As Long, ByVal lpText As String, ByVal lpCaption As String, ByVal uType As VbMsgBoxStyle, ByVal wLanguageId As Long, ByVal dwMilliseconds As Long) As Long
ДИАЛОГ ВВОДА ИНФОРМАЦИИ ПОЛЬЗОВАТЕЛЕМ - INPUTBOX
InputBox позволяет запросить от пользователя любую текстовую информацию.
InputBox Promt, [Title], [DefaultValue], [XPos], [YPos], [HelpFile], [Context]
Так же как и с MsgBox обязательным аргументом для указания является только Promt - это тот текст, который будет расположен непосредственно на самой форме диалога. Как правило это пояснение, что должен ввести пользователь.
Dim vRetVal 'для получения выбранного значения vRetVal = InputBox("Укажите значение для поиска:", "Запрос данных", "") If vRetVal = "" Then Exit Sub 'завершаем процедуру, если строка пуста
Title - текст, отображаемый в заголовке окна. В приведенном выше примере это "Запрос данных".
DefaultValue - значение, которое будет показано в поле ввода до указания значения пользователем. Как правило оно указывается в случаях, когда требуемое значение изменяется редко по запросу пользователя, но возможность такую оставить все же требуется. Пример: необходимо по нажатию кнопки удалять всегда столбец 5. Но иногда столбец в отчете смещается и требуется запрашивать у пользователя реальный номер столбца:
Sub DelCols() Dim vRetVal 'для получения выбранного значения vRetVal = InputBox("Укажите номер столбца для удаления(целое число):", "Запрос данных", 5) 'используем Val для преобразования текста vRetVal в число 'Val() преобразует число как текст в число. 'Если указан текст(например "третий") - он будет преобразован в 0 vRetVal = Val(vRetVal) If Val(vRetVal) = 0 Then MsgBox "Номер столбца должен быть целым числом больше нуля!", vbCritical, "DelCols" Exit Sub End If Columns(vRetVal).Delete End Sub
Важно знать: InputBox всегда возвращает только текст. Даже если указать - 5 - он вернет "5". В некоторых случаях это может привести к ошибке типов данных, поэтому я привел выше один из примеров преобразования типов данных к нужному.
Так же по прошествии какого-то времени появится вопрос, как отследить нажатие кнопки Отмена. Ведь ориентир на vRetVal = "" не всегда верен, иногда надо принять пустое значение(в случаях, скажем, замены значений) и отследить именно нажатие Отмена. Сделать это можно так:
vRetVal = InputBox("Укажите номер столбца для удаления(целое число):", "Запрос данных", "") If StrPtr(vRetVal) = 0 Then MsgBox "Нажата кнопка Отмена. Процедура прервана", vbCritical, "DelCols" Exit Sub End If
Больше всего вопросов здесь явно вызовет StrPtr . Эта специальная функция VBA, которая указывает, что переданы некие строковые данные. Если никаких данных не передавалось(а в случае с нажатием кнопки Отмена так и есть) указатель вернет 0. Если какие-то данные были переданы или нажата кнопка Ок(автоматом будет передана строка нулевой длины) - указатель StrPtr вернет значение отличное от нуля.
XPos - положение окна InputBox в твипах по горизонтали относительно левого края экрана. Следует учитывать, что именно относительно экрана, а не окна Excel.
YPos - положение окна InputBox в твипах по вертикали относительно верхнего края экрана.
HelpFile - указывается имя файла-справки в формате .HLP. В отличие от MsgBox указание файла допускается при любых значениях. При этом к уже имеющимся в InputBox кнопкам добавляется еще одна - Help, которая и отвечает за вызов справки.
Context - целое число. Указывается индекс страницы файла-справки, которую необходимо открыть при нажатии кнопки Help. Указывается только если указан параметр HelpFile.
В дополнение приведу классический пример применения InputBox - выполнение процедуры только после введения пароля:
Sub ClearAllCells() Dim vRetVal vRetVal = InputBox("Введите пароль:", "Авторизация", "") If StrPtr(vRetVal) = 0 Then 'Нажата кнопка Отмена Exit Sub End If 'если пароль неверный - завершаем процедуру без выполнения действий If vRetVal <> "1234" Then MsgBox "Введенный пароль неверный", vbCritical, "ClearAllCells" Exit Sub End If 'будет выполнено только если введен правильный пароль - 1234 'полная очистка всех ячеек активного листа ActiveSheet.Cells.Clear End Sub
Private Sub Workbook_Open() 'ThisWorkbook - Обращение к книге с кодом 'Но из модуля самой книги можно обращаться и проще - Me ThisWorkbook.Visible = False Dim user As String, lastrow As Long 'цикл, пока не будут указаны данные пользователя Do While user = "" user = InputBox("Введите имя пользователя:", "Авторизация", "") If StrPtr(user) = 0 Then MsgBox "Приложение будет закрыто", vbCritical, "Авторизация" ThisWorkbook.Close Exit Sub End If If user = "" Then MsgBox "Не указано имя пользователя!", vbCritical, "Авторизация" End If Loop With ThisWorkbook.Worksheets("LOG") 'получаем последнюю заполненную ячейку на листе "LOG" lastrow = .Cells(.Rows.Count, 1).End(xlUp).Row 'записываем имя пользователя .Cells(lastrow + 1, 1) = user 'записываем время входа .Cells(lastrow + 1, 2) = Now End With End Sub
Что важно: этот код записывается в модуль ЭтаКнига(ThisWorkbook) и тогда при любом открытии книги будет появляться запрос на имя пользователя.
Так же некоторые примеры применения InputBox можно найти в статьях на сайте. Например:
Как удалить строки по условию?
Как массово изменить гиперссылки?
ДИАЛОГ ВВОДА ИНФОРМАЦИИ ПОЛЬЗОВАТЕЛЕМ - APPLICATION.INPUTBOX
В общем-то данный диалог мало отличается от обычного InputBox, за исключением типов возвращаемых данных. У данного диалога намного богаче функционал определения типов данных.
InputBox Promt, [Title], [DefaultValue], [Left], [Top], [HelpFile], [HelpContextID], [Type]
почти все параметры аналогичны таким же параметрам в InputBox.
Promt - текст, отображаемый на самой форме. Иначе говоря - сама суть показа диалога.
Title - текст, отображаемый в заголовке окна. В приведенном выше примере это "Запрос данных".
DefaultValue - значение, которое будет показано в поле ввода до указания значения пользователем.
Left - положение окна InputBox в поинтах по горизонтали относительно левого края экрана. В отличие от простого InputBox положение определяется на основании расположения самого окна Excel, а не экрана.
Top - положение окна InputBox в твипах по вертикали относительно верхнего края экрана.
HelpFile - указывается имя файла-справки в формате .HLP. В отличие от MsgBox указание файла допускается при любых значениях. При этом к уже имеющимся в InputBox кнопкам добавляется еще одна - Help, которая и отвечает за вызов справки. Сам вызов справки осуществляется путем нажатия на иконку со знаком вопроса в заголовке диалога.
HelpContextID - целое число. Указывается индекс страницы файла-справки, которую необходимо открыть при нажатии кнопки Help. Указывается только если указан параметр HelpFile.
Type - целое число. Указывается одно из предустановленных значений, указывающих диалогу Application.InputBox тип данных, которые предполагается получить от пользователя. Ниже приведен листинг кода, демонстрирующий запрос данных всех типов с описанием ограничений и нюансов.
Конечно, чаще всего используют Type:=8 , т.к. это избавляет от необходимости рисования своих форм и прочих заморочек для запроса указания диапазона от пользователя. Еще раз обращаю внимание, что для Type:=8 необходим ключевой оператор присвоения Set , т.к. в результате необходимо получить именно диапазон(т.е. объект). Ниже приведена процедура, которая запрашивает диапазон для очистки и корректно обрабатывает ситуацию при нажатии кнопки Отмена(т.е. не показывает никаких ошибок пользователю, а просто не выполняется). Стандартно при нажатии Отмена процедура завершается с ошибкой VBA вида Type Mismatch , что не очень грамотно с точки зрения взаимодействия с пользователем - он не должен видеть внутренние ошибки:
Конечно, можно еще много чего, наверное, рассказать - но я на данном этапе завершу. Если будут еще мысли - обязательно дополню статью.
Читайте также: