Inputbox vba excel с выпадающим списком

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's user avatar

omegastripes

12.3k4 gold badges44 silver badges95 bronze badges

asked Oct 16, 2014 at 22:21

Marco's user avatar

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's user avatar

Peter Albert

16.8k4 gold badges66 silver badges88 bronze badges

answered Oct 17, 2014 at 0:31

Marco's user avatar

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's user avatar

fretje

8,3122 gold badges49 silver badges61 bronze badges

answered Mar 2, 2021 at 18:57

Stephen Rush's user avatar

  • #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.:eek:

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?

populate_userform_list_10.png

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

Содержание

  1. Create drop down list in input-box
  2. 2 Answers 2
  3. Linked
  4. Related
  5. Hot Network Questions
  6. Subscribe to RSS
  7. Dropdown list in VBA InputBox
  8. TimvMechelen
  9. Excel Facts
  10. Norie
  11. TimvMechelen
  12. Norie
  13. TimvMechelen
  14. Norie
  15. VBA Excel. Метод Application.InputBox (синтаксис, параметры)
  16. Синтаксис метода
  17. Параметры метода
  18. Возвращаемые значения
  19. Метод Application.InputBox (Excel)
  20. Синтаксис
  21. Параметры
  22. Возвращаемое значение
  23. Примечания
  24. Пример
  25. Поддержка и обратная связь

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 соответствующим для возвращения логических, числовых значений и значений ошибки.

Вызов окна со списком

Артур

Дата: Понедельник, 14.03.2016, 09:06 |
Сообщение № 1

Группа: Пользователи

Ранг: Новичок

Сообщений: 10


Репутация:

0

±

Замечаний:
0% ±


Excel 2010

Ребят подскажите пожалуйста как реализовать вызов окна типа InputBox со спиком, чтоб можно было выбрать значение из списка.

 

Ответить

Pelena

Дата: Понедельник, 14.03.2016, 09:25 |
Сообщение № 2

Группа: Админы

Ранг: Местный житель

Сообщений: 18797


Репутация:

4284

±

Замечаний:
±


Excel 2016 & Mac Excel


«Черт возьми, Холмс! Но как??!!»
Ю-money 41001765434816

 

Ответить

Артур

Дата: Среда, 16.03.2016, 07:32 |
Сообщение № 3

Группа: Пользователи

Ранг: Новичок

Сообщений: 10


Репутация:

0

±

Замечаний:
0% ±


Excel 2010

Я скорее всего не првильно выразился. Допустим пользователь вводит в окно ФИО, надо что б он мог выбрать из списка, т.е вышло окно и там был список)) это возможно?

[vba]

Код

Private Sub CommandButton1_Click()
Dim NextRow As Long
Dim Entryl As String, Entry2 As String, Entry3 As String, Entry4 As String, Entry5 As String, Entry6 As String
Dim Entry7 As String, Entry8 As String, Entry9 As String, Entry10 As String, Entry11 As String

Do
NextRow = Cells(Rows.Count, 1).End(xlUp).Row + 1
Entryl = InputBox(«Вводим номер заказа»)
If Entryl = «» Then Exit Sub
Entry2 = InputBox(«Вводим дату»)
If Entry2 = «» Then Exit Sub
Entry3 = InputBox(«Вводим причину вызова исполнителя»)
If Entry3 = «» Then Exit Sub
Entry4 = InputBox(«Вводим дату проведения работ»)
If Entry4 = «» Then Exit Sub
Entry5 = InputBox(«Вводим количетсво сотрудников исполнителя»)
If Entry5 = «» Then Exit Sub
Entry6 = InputBox(«Вводим должность»)
If Entry6 = «» Then Exit Sub
Entry7 = InputBox(«Вводим ФИО»)
If Entry7 = «» Then Exit Sub
Entry8 = InputBox(«Вводим дату ваыхода сотрудника/ время работы»)
If Entry8 = «» Then Exit Sub
Entry9 = InputBox(«Вводим количество часов»)
If Entry9 = «» Then Exit Sub
Entry10 = InputBox(«Вводим дату»)
If Entry10 = «» Then Exit Sub
Entry11 = InputBox(«Выплненные работы»)
If Entry11 = «» Then Exit Sub
Cells(NextRow, 1) = Entryl
Cells(NextRow, 2) = Entry2
Cells(NextRow, 3) = Entry3
Cells(NextRow, 4) = Entry4
Cells(NextRow, 5) = Entry5
Cells(NextRow, 6) = Entry6
Cells(NextRow, 7) = Entry7
Cells(NextRow, 8) = Entry8
Cells(NextRow, 9) = Entry9
Cells(NextRow, 10) = Entry10
Cells(NextRow, 11) = Entry11
Loop

End Sub

[/vba]
[moder]Оформляйте коды тегами — кнопка #. Поправил Вам.

Сообщение отредактировал _Boroda_Среда, 16.03.2016, 07:37

 

Ответить

китин

Дата: Среда, 16.03.2016, 07:35 |
Сообщение № 4

Группа: Модераторы

Ранг: Экселист

Сообщений: 6973


Репутация:

1063

±

Замечаний:
0% ±


Excel 2007;2010;2016


Не судите очень строго:я пытаюсь научиться
ЯД 41001877306852

Сообщение отредактировал китинСреда, 16.03.2016, 07:36

 

Ответить

Понравилась статья? Поделить с друзьями:
  • Index sheet name excel
  • Insert hyperlink to word
  • Inputbox vba excel примеры
  • Index pages in word
  • Inputbox vba excel да нет