I’m creating a task list for our team, and to enter new tasks i’ve created input-boxes.
There are only 5 departments that should be entered in the «department question»
Te prevent people from entering a wrong department name, i would like to use that input-box a drop down list.
I’ve searched the net, but could not find how to create a drop down list in an input-box. I don’t know if this is possible?
Can anyone help me?
The code i wrote for the inputs are as followed:
Private Sub Newaction_Click()
Dim content As String, date1 As Date, date2 As Date, department As String
Sheets("DO NOT DELETE").Rows("30:30").Copy
Rows("14:14").Select
Range("C14").Activate
Selection.Insert Shift:=xlDown
content = InputBox("describe the task")
Range("C14").Value = content
department = InputBox("to which department is the task assigned? ") '<-- here i want to create drop down list
Range("D14").Value = department
date1 = InputBox("when does the task start")
Range("F14").Value = date1
date2 = InputBox("when should the task be finished? ")
Range("G14").Value = date2
End Sub
omegastripes
12.3k4 gold badges44 silver badges95 bronze badges
asked Oct 16, 2014 at 22:21
I have created a form in excel in stead of using input box.
For the selection of department i created a combo-box with the correct departments:
Private Sub Newaction_Click()
Sheets("DO NOT DELETE").Rows("30:30").Copy
Rows("14:14").Select
Range("C14").Activate
Selection.Insert Shift:=xlDown
Cells(14, 3) = Taskd.Value
Cells(14, 5) = ComboBox1
Unload Me
UserForm2.Show
End Sub
Private Sub UserForm_Initialize()
Taskd.Value = ""
With ComboBox1
.AddItem "Lean"
.AddItem "Maintenance"
.AddItem "Process Engineering"
.AddItem "Safety"
.AddItem "Workinstructions"
End With
End Sub
For the dates i created a separate form (userfrom2 and userform3) to enter the dates on a calander.
Private Sub MonthView1_DateClick(ByVal DateClicked As Date)
On Error Resume Next
startd = DateClicked
Cells(14, 6).Value = startd
Unload Me
UserForm3.Show
End Sub
Private Sub MonthView1_DateClick(ByVal DateClicked As Date)
On Error Resume Next
endd = DateClicked
Cells(14, 7).Value = endd
Unload Me
End Sub
The Monthview1 is an extra option in Excel which you can activate via:
forms toolbox —> right click on toolbox —> select Additional controls —> Microsoft Monthviews control
Peter Albert
16.8k4 gold badges66 silver badges88 bronze badges
answered Oct 17, 2014 at 0:31
MarcoMarco
352 gold badges2 silver badges7 bronze badges
Inputbox with Type 8 can be used for drop-down manipulation. Here’s some of that code:
'To select the table
Range(Selection.End(xlDown), Selection).Select
'To highlight the first cell
ActiveCell.Activate
'To store first box of contents in range
stove = ActiveCell
'InputBox Type:=8 allows cursor movement when used in combination with Set.
recipe = "Select a name or press 'Cancel'."
On Error GoTo 0
Set table = Application.InputBox(Prompt:=recipe, Default:=stove, Type:=8)
If vbCancel Then GoTo foodisready
On Error Resume Next
This was originally created with each cell as a range name.
fretje
8,3122 gold badges49 silver badges61 bronze badges
answered Mar 2, 2021 at 18:57
-
#1
Hi,
Is it possible to get a dropdown list with VBA InputBox?
The dropdown list has to refer to the table[column]: «TabelMatriaalinformatie[Materiaal:]»
Thank you for you time.
A part of the VBA code i have now:
Code:
Dim Materials As Variant
Sheets("Beginblad").Select
Materials = Inputbox("Material:" , "Algemene gegevens product",Range("D13"))
Range("D13").Value = Materials
Now you can put in something manualy.
Can this be a dropdown list?
Excel Wisdom
Using a mouse in Excel is the work equivalent of wearing a lanyard when you first get to college
-
#2
Sorry it’s not possible with a built-in InputBox.
However it would be straightforward to create your own ‘inputbox’ with a dropdown using a userform.
-
#3
What do you mean with » create your own ‘inputbox’ «?
-
#4
You could create a userform with a droddown to mimic an inputbox.
-
#5
You could create a userform with a droddown to mimic an inputbox.
How can i do this?
A dropdown is not necessary, but something sigmilar where i can choose my materials from a list is fine too.
Something like this maybe?
Last edited: Nov 25, 2016
-
#6
Open the VBE (ALT+F11), goto Insert>Userform…
You should now have a blank userform that you can add comboboxes, listboxes, buttons etc.
If you don’t want to use a userform you could set up an in-cell dropdown in D13, or any other cell, using Data>Validation… with the List option.
-
#7
Open the VBE (ALT+F11), goto Insert>Userform…
You should now have a blank userform that you can add comboboxes, listboxes, buttons etc.
How can I do this?
Sorry i’m new to UserForms
Содержание
- Create drop down list in input-box
- 2 Answers 2
- Linked
- Related
- Hot Network Questions
- Subscribe to RSS
- Dropdown list in VBA InputBox
- TimvMechelen
- Excel Facts
- Norie
- TimvMechelen
- Norie
- TimvMechelen
- Norie
- VBA Excel. Метод Application.InputBox (синтаксис, параметры)
- Синтаксис метода
- Параметры метода
- Возвращаемые значения
- Метод Application.InputBox (Excel)
- Синтаксис
- Параметры
- Возвращаемое значение
- Примечания
- Пример
- Поддержка и обратная связь
Create drop down list in input-box
I’m creating a task list for our team, and to enter new tasks i’ve created input-boxes. There are only 5 departments that should be entered in the «department question» Te prevent people from entering a wrong department name, i would like to use that input-box a drop down list.
I’ve searched the net, but could not find how to create a drop down list in an input-box. I don’t know if this is possible?
Can anyone help me?
The code i wrote for the inputs are as followed:
2 Answers 2
I have created a form in excel in stead of using input box. For the selection of department i created a combo-box with the correct departments:
For the dates i created a separate form (userfrom2 and userform3) to enter the dates on a calander.
The Monthview1 is an extra option in Excel which you can activate via: forms toolbox —> right click on toolbox —> select Additional controls —> Microsoft Monthviews control
Inputbox with Type 8 can be used for drop-down manipulation. Here’s some of that code:
This was originally created with each cell as a range name.
Linked
Hot Network Questions
To subscribe to this RSS feed, copy and paste this URL into your RSS reader.
Site design / logo © 2023 Stack Exchange Inc; user contributions licensed under CC BY-SA . rev 2023.3.17.43323
By clicking “Accept all cookies”, you agree Stack Exchange can store cookies on your device and disclose information in accordance with our Cookie Policy.
Источник
Dropdown list in VBA InputBox
TimvMechelen
Board Regular
Is it possible to get a dropdown list with VBA InputBox?
The dropdown list has to refer to the table[column]: «TabelMatriaalinformatie[Materiaal:]»
Thank you for you time.
A part of the VBA code i have now:
Excel Facts
Norie
Well-known Member
Sorry it’s not possible with a built-in InputBox.
However it would be straightforward to create your own ‘inputbox’ with a dropdown using a userform.
TimvMechelen
Board Regular
Norie
Well-known Member
TimvMechelen
Board Regular
How can i do this?
A dropdown is not necessary, but something sigmilar where i can choose my materials from a list is fine too.
Something like this maybe?
Norie
Well-known Member
Open the VBE (ALT+F11), goto Insert>Userform.
You should now have a blank userform that you can add comboboxes, listboxes, buttons etc.
If you don’t want to use a userform you could set up an in-cell dropdown in D13, or any other cell, using Data>Validation. with the List option.
Источник
VBA Excel. Метод Application.InputBox (синтаксис, параметры)
Использование метода Application.InputBox в VBA Excel, его синтаксис и параметры. Значения, возвращаемые диалогом Application.InputBox. Примеры использования.
Метод Application.InputBox предназначен в VBA Excel для вывода диалогового окна с более расширенными возможностями, чем диалоговое окно, отображаемое функцией InputBox. Главным преимуществом метода Application.InputBox является возможность автоматической записи в поле ввода диапазона ячеек (в том числе одной ячейки ) путем его выделения на рабочем листе книги Excel и возвращения различных данных, связанных с ним, а также проверка соответствия возвращаемого значения заданному типу данных.
Синтаксис метода
Application.InputBox ( Prompt , Title , Default , Left , Top , HelpFile , HelpContextID , Type )
Обязательным параметром метода Application.InputBox является Prompt, если значения остальных параметров явно не указаны, используются их значения по умолчанию.
Обратите внимание на то, что
- оператор InputBox вызывает функцию InputBox, а
- оператор Application.InputBox вызывает метод InputBox.
Чтобы не было путаницы, метод InputBox пишут как метод Application.InputBox, в том числе и в справке разработчика.
Параметры метода
Параметр | Описание | Значение по умолчанию |
---|---|---|
Prompt | Обязательный параметр. Выражение типа String, отображаемое в диалоговом окне в виде сообщения, приглашающего ввести данные в поле. Разделить на строки сообщение можно с помощью константы vbNewLine. | Нет |
Title | Необязательный параметр. Выражение типа Variant, отображаемое в заголовке диалогового окна. | Слово «Ввод» |
Default | Необязательный параметр. Выражение типа Variant, отображаемое в поле ввода при открытии диалога. | Пустая строка |
Left | Необязательный параметр. Выражение типа Variant, определяющее в пунктах расстояние от левого края экрана до левого края диалогового окна (координата X).* | Горизонтальное выравнивание по центру** |
Top | Необязательный параметр. Выражение типа Variant, определяющее в пунктах расстояние от верхнего края экрана до верхнего края диалогового окна (координата Y).* | Приблизительно равно 1/3 высоты экрана*** |
HelpFile | Необязательный параметр. Выражение типа Variant, указывающее имя файла справки для этого поля ввода. | Нет**** |
HelpContextID | Необязательный параметр. Выражение типа Variant, указывающее идентификатор контекста в справочном разделе файла справки. | Нет**** |
Type | Необязательный параметр. Выражение типа Variant, указывающее тип возвращаемых данных. | 2 (текст) |
* Параметры Left и Top учитываются при отображении диалогового окна методом Application.InputBox в Excel 2003, а в последующих версиях Excel 2007-2016 уже не работают.
**При первом запуске горизонтальное выравнивание устанавливается по центру, при последующих — форма отобразиться в том месте, где ее последний раз закрыли.
***При первом запуске вертикальное расположение приблизительно равно 1/3 высоты экрана, при последующих — форма отобразиться в том месте, где ее последний раз закрыли.
**** Если будут указаны параметры HelpFile и HelpContextID, в диалоговом окне появится кнопка справки.
Возвращаемые значения
Диалоговое окно, созданное методом Application.InputBox, возвращает значение типа Variant и проверяет соответствие возвращаемого значения типу данных, заданному параметром Type. Напомню, что тип значений Variant является универсальным контейнером для значений других типов, а в нашем случае для возвращаемых в зависимости от значения параметра Type.
Аргументы параметра Type и соответствующие им типы возвращаемых значений:
Источник
Метод Application.InputBox (Excel)
Отображает диалоговое окно для данных, вводимых пользователями. Возвращает данные, введенные в диалоговом окне.
Синтаксис
expression.InputBox (Prompt, Title, Default, Left, Top, HelpFile, HelpContextID, Type)
выражение: переменная, представляющая объект Application.
Параметры
Имя | Обязательный или необязательный | Тип данных | Описание |
---|---|---|---|
Prompt | Обязательно | String | Сообщение, которое отображается в диалоговом окне. Это может быть строка, число, дата или логическое значение (Microsoft Excel автоматически переводит значение в тип String перед отображением). Максимальная длина сообщения составляет 255 символов, в противном случае запрос не выводится, а метод приложения сразу же возвращает ошибку 2015. |
Title | Необязательный | Variant | Название поля для ввода. Если этот аргумент пропущен, используется заголовок по умолчанию «Ввод». |
Default | Optional | Variant | Задает значение, которое будет отображаться в текстовом поле при первоначальном отображении диалогового окна. Если этот аргумент пропущен, текстовое поле остается пустым. Это значение может представлять собой объект Range объекта. |
Left | Необязательный | Variant | Указывает положение по оси x для диалогового окна по отношению к левому верхнему углу экрана в пунктах. |
Top | Необязательный | Variant | Указывает положение по оси y для диалогового окна по отношению к левому верхнему углу экрана в пунктах. |
HelpFile | Optional | Variant | Имя файла справки для этого поля ввода. При наличии аргументов HelpFile и HelpContextID, кнопка «Справка» будет отображаться в диалоговом окне. |
HelpContextID | Optional | Variant | Номер идентификатора контекста раздела справки в HelpFile. |
Type | Необязательный | Variant | Задает тип возвращаемых данных. Если этот аргумент опущен, диалоговое окно возвращает текст. |
Возвращаемое значение
Примечания
В таблице ниже перечислены значения, которые можно передать в аргументе Type. Это может быть одиночное значение или сумма значений. К примеру, для поля ввода, которое допускает ввод текста и чисел, задайте для аргумента Type значение 1 + 2.
Значение | Описание |
---|---|
0 | Формула |
1 | Число |
2 | Текст (строка) |
4 | Логическое значение (правда или ложь) |
8 | Ссылка на ячейку в виде объекта Range |
16 | Значение ошибки, например, #N/A |
64 | Массив значений |
Используйте InputBox для отображения простого диалогового окна, что позволит вам вводить данные, которое можно будет использоваться в макросе. Диалоговое окно имеет кнопку ОК и кнопку Отмена. При выборе кнопки ОКInputBox возвращает значение, введенное в диалоговом окне. При выборе кнопки ОтменаInputBox возвращает значение Ложь.
Если значение Type равно 0, InputBox возвращает формулу в виде текста, например, =2*PI()/360 . Если в формуле есть все ссылки, они возвращаются в качестве ссылки в стиле A1. (Используйте ConvertFormula для преобразования стиля ссылок.)
Если значение Type равно 8, InputBox возвращает объект Range. Необходимо использовать оператор Set, чтобы назначить результат для объекта Range, как показано в приведенном ниже примере.
Если не используется оператор Set, для переменной устанавливается значение в диапазоне, а не сам объект Range.
Если вы используете метод InputBox для запроса формулы у пользователя, необходимо использовать свойство FormulaLocal, чтобы назначить формулу для объекта Range. Ввод формулы будет выполняться на языке пользователя.
Метод InputBox отличается от функции InputBox тем, что он позволяет выполнять выборочную проверку вводимых пользователем значений и его можно использовать с объектами, значениями ошибок и формулами Excel. Обратите внимание, что Application.InputBox вызывает метод InputBox; InputBox без квалификатора объекта вызывает функцию InputBox.
Пример
В этом примере у пользователя запрашивается число.
В этом примере пользователю предлагается выбрать ячейку на Листе1. В примере используется аргумент Type, чтобы гарантировать. что возвращаемое значение будет допустимой ссылкой на ячейку (объект Range).
В этом примере используется метод InputBox для пользователя, чтобы выделить диапазон для передачи определяемой пользователем функции MyFunction, которая умножает три значения в диапазоне и возвращает результат.
Поддержка и обратная связь
Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.
Источник
Использование метода Application.InputBox в VBA Excel, его синтаксис и параметры. Значения, возвращаемые диалогом Application.InputBox. Примеры использования.
Метод Application.InputBox предназначен в VBA Excel для вывода диалогового окна с более расширенными возможностями, чем диалоговое окно, отображаемое функцией InputBox. Главным преимуществом метода Application.InputBox является возможность автоматической записи в поле ввода диапазона ячеек (в том числе одной ячейки) путем его выделения на рабочем листе книги Excel и возвращения различных данных, связанных с ним, а также проверка соответствия возвращаемого значения заданному типу данных.
Синтаксис метода
Application.InputBox ( Prompt , Title , Default , Left , Top , HelpFile , HelpContextID , Type )
Обязательным параметром метода Application.InputBox является Prompt, если значения остальных параметров явно не указаны, используются их значения по умолчанию.
Обратите внимание на то, что
- оператор InputBox вызывает функцию InputBox, а
- оператор Application.InputBox вызывает метод InputBox.
Чтобы не было путаницы, метод InputBox пишут как метод Application.InputBox, в том числе и в справке разработчика.
Параметры метода
Параметр | Описание | Значение по умолчанию |
---|---|---|
Prompt | Обязательный параметр. Выражение типа String, отображаемое в диалоговом окне в виде сообщения, приглашающего ввести данные в поле. Разделить на строки сообщение можно с помощью константы vbNewLine. | Нет |
Title | Необязательный параметр. Выражение типа Variant, отображаемое в заголовке диалогового окна. | Слово «Ввод» |
Default | Необязательный параметр. Выражение типа Variant, отображаемое в поле ввода при открытии диалога. | Пустая строка |
Left | Необязательный параметр. Выражение типа Variant, определяющее в пунктах расстояние от левого края экрана до левого края диалогового окна (координата X).* | Горизонтальное выравнивание по центру** |
Top | Необязательный параметр. Выражение типа Variant, определяющее в пунктах расстояние от верхнего края экрана до верхнего края диалогового окна (координата Y).* | Приблизительно равно 1/3 высоты экрана*** |
HelpFile | Необязательный параметр. Выражение типа Variant, указывающее имя файла справки для этого поля ввода. | Нет**** |
HelpContextID | Необязательный параметр. Выражение типа Variant, указывающее идентификатор контекста в справочном разделе файла справки. | Нет**** |
Type | Необязательный параметр. Выражение типа Variant, указывающее тип возвращаемых данных. | 2 (текст) |
* Параметры Left и Top учитываются при отображении диалогового окна методом Application.InputBox в Excel 2003, а в последующих версиях Excel 2007-2016 уже не работают.
**При первом запуске горизонтальное выравнивание устанавливается по центру, при последующих — форма отобразиться в том месте, где ее последний раз закрыли.
***При первом запуске вертикальное расположение приблизительно равно 1/3 высоты экрана, при последующих — форма отобразиться в том месте, где ее последний раз закрыли.
**** Если будут указаны параметры HelpFile и HelpContextID, в диалоговом окне появится кнопка справки.
Возвращаемые значения
Диалоговое окно, созданное методом Application.InputBox, возвращает значение типа Variant и проверяет соответствие возвращаемого значения типу данных, заданному параметром Type. Напомню, что тип значений Variant является универсальным контейнером для значений других типов, а в нашем случае для возвращаемых в зависимости от значения параметра Type.
Аргументы параметра Type и соответствующие им типы возвращаемых значений:
Type | Возвращаемое значение |
---|---|
0 | Формула |
1 | Число |
2 | Текст (string) |
4 | Логическое значение (True или False) |
8 | Ссылки на ячейки в виде объекта Range |
16 | Значение ошибки (например, #н/д) |
64 | Массив значений |
Примеры
В отличие от других встроенных диалоговых окон VBA Excel, Application.InputBox при запуске процедуры непосредственно из редактора, открывается прямо в редакторе, и, чтобы выбрать диапазон ячеек на рабочем листе, нужно по вкладке браузера перейти в книгу Excel. Поэтому для тестирования диалога Application.InputBox удобнее создать кнопку, перетащив ее на вкладке «Разработчик» из «Элементов управления формы» (не из «Элементов ActiveX») и в окошке «Назначить макрос объекту» выбрать имя тестируемой процедуры. Чтобы можно было выбрать процедуру сразу при создании кнопки, она должна быть уже вставлена в стандартный программный модуль. Можно назначить процедуру кнопке позже, кликнув по ней правой кнопкой мыши и выбрав в контекстном меню «Назначить макрос…».
Пример 1 — параметры по умолчанию
Тестируем метод Application.InputBox с необязательными параметрами по умолчанию. Аргумент параметра Type по умолчанию равен 2.
Sub Test1() Dim a As Variant a = Application.InputBox(«Выберите ячейку:») MsgBox a End Sub |
Скопируйте код и вставьте в стандартный модуль, для удобства создайте на рабочем листе кнопку из панели «Элементы управления формы» и назначьте ей макрос «Test1». На рабочем листе заполните некоторые ячейки разными данными, нажимайте кнопку, выбирайте ячейки и смотрите возвращаемые значения.
Клик по кнопке «OK» диалога Application.InputBox в этом примере возвращает содержимое выбранной ячейки (или левой верхней ячейки выбранного диапазона), преобразованное в текстовый формат. У дат в текстовый формат преобразуется их числовое представление.
Клик по кнопке «Отмена» или по закрывающему крестику возвращает строку «False».
Пример 2 — возвращение объекта Range
В этом примере тестируем метод Application.InputBox с обязательным параметром Prompt, разделенным на две строки, параметром Title и значением параметра Type равным 8. Так как в данном случае диалог в качестве значения возвращает объект Range, он присваивается переменной с помощью оператора Set. Для этого примера создайте новую кнопку из панели «Элементы управления формы» и назначьте ей макрос «Test2».
Sub Test2() Dim a As Variant Set a = Application.InputBox(«Пожалуйста,» _ & vbNewLine & «выберите диапазон:», _ «Наш диалог», , , , , , 8) MsgBox a.Cells(1) MsgBox a.Address End Sub |
В первом информационном окне MsgBox выводится значение первой ячейки выбранного диапазона, во втором — адрес диапазона.
Напомню, что обращаться к ячейке в переменной диапазона «a» можно не только по порядковому номеру (индексу) самой ячейки, но и по индексу строки и столбца, на пересечении которых она находится. Например, оба выражения
указывают на первую ячейку диапазона. А в объектной переменной «a» с присвоенным диапазоном размерностью 3х3 оба выражения
указывают на центральную ячейку диапазона.
При использовании метода Application.InputBox происходит проверка введенных данных: попробуйте понажимать кнопку «OK» с пустым полем ввода и с любым введенным текстом (кроме абсолютного адреса). Реакция в этих случаях разная, но понятная.
Есть и отрицательные моменты: при использовании в диалоге Application.InputBox параметра Type со значением равным 8, нажатие кнопок «Отмена» и закрывающего крестика вызывают ошибку Type mismatch (Несоответствие типов). Попробуйте нажать кнопку «Отмена» или закрыть форму диалога.
Решить эту проблему можно, добавив обработчик ошибок. Скопируйте в стандартный модуль код следующей процедуры, создайте еще одну кнопку и назначьте ей макрос «Test3».
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
Sub Test3() Dim a As Variant ‘При возникновении ошибки ‘перейти к метке «Inform» On Error GoTo Inform Set a = Application.InputBox(«Пожалуйста,» _ & vbNewLine & «Выберите диапазон:», _ «Наш диалог», , , , , , 8) MsgBox a.Cells(1) MsgBox a.Address ‘Выйти из процедуры, ‘если не произошла ошибка Exit Sub ‘Метка Inform: ‘Вывести информационное окно с ‘сообщением об ошибке MsgBox «Диалог закрыт или нажата кнопка « _ & Chr(34) & «Отмена» & Chr(34) & «!» End Sub |
Попробуйте теперь нажать кнопку «Отмена» или закрыть форму диалога крестиком.
Пример 3 — возвращение массива
Скопируйте в стандартный модуль код процедуры ниже, создайте четвертую кнопку и назначьте ей макрос «Test4». В этой процедуре указан только аргумент параметра Type равным 64, остальные необязательные параметры оставлены по умолчанию.
Sub Test4() Dim a As Variant a = Application.InputBox(«Выберите диапазон:», , , , , , , 64) MsgBox a(3, 3) End Sub |
Откройте диалоговую форму, нажав четвертую кнопку, и выберите диапазон размерностью не менее 3х3. Нажмите «OK»: информационное сообщение выведет значение соответствующего элемента массива «a», в нашем случае — «a(3, 3)». Если вы выберите диапазон по одному из измерений меньше 3, тогда строка «MsgBox a(3, 3)» вызовет ошибку, так как указанный элемент выходит за границы массива. Эта же строка по этой же причине вызовет ошибку при нажатии кнопки «Отмена» и при закрытии диалога крестиком. Если закомментировать строку «MsgBox a(3, 3)», то закрываться диалог будет без ошибок и при нажатии кнопки «Отмена», и при закрытии диалога крестиком.
Чтобы не попасть за границу массива используйте функцию UBound для определения наибольшего доступного индекса по каждому из двух измерений, например, вот так:
Sub Test5() Dim a As Variant a = Application.InputBox(«Выберите диапазон:», , , , , , , 64) MsgBox «Максимальный индекс 1 измерения = « & UBound(a, 1) & _ vbNewLine & «Максимальный индекс 2 измерения = « & UBound(a, 2) End Sub |
только присваивайте значения выражений «UBound(a, 1)» и «UBound(a, 2)» числовым переменным. А этот код используйте для ознакомления с работой функции UBound и ее тестирования.
В этой процедуре ошибка выдается при выборе одной ячейки или диапазона в одной строке, очевидно, Excel воспринимает его как одномерный массив. Хотя при выборе диапазона в одном столбце, по крайней мере в Excel 2016, все проходит гладко и вторая строка информационного сообщения отображается как «Максимальный индекс 2 измерения = 1».
Ошибка выдается и при нажатии кнопки «Отмена», и при закрытии диалога крестиком, так как переменная «а» в этом случае еще не является массивом, а мы пытаемся использовать ее как аргумент для функции массива, что и вызывает ошибку.
Пример 4 — возвращение формулы
Возвращение формулы рассмотрим на следующем примере:
Sub Test6() Dim a As Variant a = Application.InputBox(«Создайте формулу:», , , , , , , 0) Cells(1, 1) = a End Sub |
На активном листе Excel заполните некоторые ячейки числами и запустите процедуру на выполнение. После отображения диалога Application.InputBox выбирайте по одной ячейке с числами, вставляя между ними математические операторы. После нажатия на кнопку «OK» формула запишется в первую ячейку активного рабочего листа «Cells(1, 1)» (в текст формулы ее не выбирайте, чтобы не возникла циклическая ссылка). При нажатии на кнопку «Отмена» и при закрытии диалога крестиком в эту ячейку запишется слово «Ложь».
Можно записывать не только математические формулы, но и объединять содержимое ячеек с помощью оператора «&» и многое другое. Только не понятно, для чего это вообще нужно, как, впрочем, и возврат логических, числовых значений и значений ошибки. Вы можете протестировать их возврат с помощью процедуры «Test6», заменив в ней параметр Type метода Application.InputBox соответствующим для возвращения логических, числовых значений и значений ошибки.
Вызов окна со списком |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |