Может ли формула ячейки Excel ссылаться на элемент управления UserForm?
У меня есть UserForm с текстовыми полями, которые уже привязаны к определенным ячейкам листа через свойство ControlSource. Мне нужно выполнить расчет между двумя этими связанными значениями и получить результат в третьей ячейке рабочего листа. Я знаю, что есть много способов сделать это, но мне интересно, есть ли способ сделать это как формулу в ячейке рабочего листа, которая ссылается на управляющие значения UserForm. Например, я хотел бы иметь возможность поместить формулу в ячейку C3, которая будет похожа на
= UserForm1.TextBox1.Value * UserForm1.TextBox2.Value
но я не нашел ссылки на адреса, использующие формулы ячейки листа, чтобы получать значения непосредственно из элементов управления UserForm. (И нет, в этом случае я не могу просто ссылаться на связанные ячейки, подключая что-то вроде «= A1 * B2» в ячейку C3. Этот вопрос конкретно касается того, можно ли ссылаться на элемент управления UserForm из формулы ячейки рабочего листа. ) Заранее благодарим за любые полезные предложения.
- Ошибка 424 «Требуемый объект» при попытке вычислить количество используемых строк
- VBA Как проверить, существуют ли значения пользовательской формы combobox в базе данных
- Выбрать переменный объект с помощью счетчика
- Элементы списка combobox Userform + сохранять значения пользовательской формы как варианты в VBA Excel
- Excel только показывать пользовательскую форму, никогда не показывать книгу
- Передача модуля переменной страницы в пользовательскую форму в VBA
- Попытка ссылаться на другой рабочий лист в активной книге
- Добавление серийной коллекции в диаграмму с помощью UserForm (combobox)
- Excel VBA UserForm - если не IsEmpty Then
- excel vba userforms: пользовательский тип не определен
- Использование операторов IF & AND с флажками в пользовательской форме
- Excel VBA Userform - Как увеличить / уменьшить дату на один месяц
- Очистить каскадный ComboBox при повторном выборе
Единственный способ ссылаться на свойство элемента управления ActiveX на листе – через пользовательскую функцию, такую как:
Public Function GetTextBoxValue(TextBoxName As String) As String On Error GoTo 0 Dim o As OLEObject Set o = Sheet1.OLEObjects(TextBoxName) On Error Resume Next If Not o Is Nothing Then GetTextBoxValue = o.Object.Text End If End Function
Затем вызовите функцию из ячейки, например: =GetTextBoxValue("TextBox1")