Предоставить пользователю инструмент выбора диапазона / утилиту в Excel VBA - PullRequest
12 голосов
/ 22 декабря 2010

Я пытаюсь разработать пользовательскую форму в Excel 2007 VBA и хочу предоставить пользователю значок выбора диапазона, что-то вроде этого: Range Selection Icon

Однако я не смог найти ни одноговстроенный инструмент проектирования форм или любой онлайн-инструмент, который предоставляет это или, по крайней мере, дает мне идею.Если у кого-то есть идеи по этому поводу, я буду очень признателен за их помощь.

Ответы [ 2 ]

12 голосов
/ 22 декабря 2010

Этот элемент управления называется RefEdit элемент управления.

Чтобы использовать его, сначала необходимо добавить его в окно панели инструментов, щелкнув правой кнопкой мыши в окне панели инструментов и выбрав Дополнительные элементы управления ... . Затем вы выбираете RefEdit.Ctrl и закрываете диалоговое окно.

Теперь вы можете выбрать его на панели инструментов и поместить в форму.

1 голос
/ 28 июня 2016

Другой альтернативой использованию RefEdit.Ctrl является подключение к недокументированным функциям элемента управления TextBox и использование функции Application.InputBox .

Существуют два свойства элемента управления TextBox, которые не отображаются в диалоговом окне «Свойства», что позволяет добавить кнопку справа. Это DropButtonStyle и ShowDropButtonWhen . При нажатии кнопки запускается событие DropButtonClick для элемента управления, в котором можно отобразить поле ввода.

Начните с размещения элемента TextBox в форме. Затем добавьте следующее к процедуре UserForm_Initialize :

Private Sub UserForm_Initialize()
    txtRefersTo.DropButtonStyle = frmDropButtonStyleReduce
    txtRefersTo.ShowDropButtonWhen = frmShowDropButtonWhenAlways
End Sub

Затем добавьте обработчик события к событию DropButtonClick следующим образом для захвата диапазона с помощью диалога Application.InputBox :

Private Sub txtRefersTo_DropButtonClick()
    Me.Hide
    txtRefersTo.Text = Application.InputBox("Select the range", "Range Picker", txtRefersTo.Text, Type:=8)
    Me.Show vbModal
End Sub

Основным преимуществом этого подхода является то, что он позволяет размещать элемент управления в рамке или на отдельной вкладке, не испытывая проблем, связанных с RefEdit.Ctrl . Недостатком является то, что для взаимодействия с Excel требуется отдельный диалог.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...