Tooprogram.ru

Компьютерный справочник
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Как удалить textbox в excel

Как удалить textbox в excel

= Мир MS Excel/Как удалить TextBox — Мир MS Excel

—> —> —> Правила форумаFAQНовости сайтаНовые сообщенияУчастникиRSS

Отметить все сообщения прочитанными и перейти на главную страницу форума

—>

  • Страница 1 из 1
  • 1
Модератор форума: _Boroda_, Manyasha, SLAVICK, китин
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Как удалить TextBox (Макросы/Sub)

Как удалить TextBox

LdhimikДата: Четверг, 31.08.2017, 11:11 | Сообщение № 1
iMrTidyДата: Четверг, 31.08.2017, 13:22 | Сообщение № 2

Private Sub UserForm_Click()

Dim i As Integer

Private Sub UserForm_Click()

Dim i As Integer

Вышенаписанное мной не является истиной, но лишь моя точка зрения, которая скорее всего ошибочна.

Private Sub UserForm_Click()

Dim i As Integer

i = 0
While i Автор — iMrTidy
Дата добавления — 31.08.2017 в 13:22

LdhimikДата: Четверг, 31.08.2017, 15:25 | Сообщение № 3
LdhimikДата: Четверг, 31.08.2017, 15:26 | Сообщение № 4
AndreTMДата: Четверг, 31.08.2017, 17:13 | Сообщение № 5

Видимо, это были не совсем «натуральные текстбоксы».

Хотя да, ActiveX’ы — они такие, лезут, понимаешь ли, в коллецию шейпов

Видимо, это были не совсем «натуральные текстбоксы».

Хотя да, ActiveX’ы — они такие, лезут, понимаешь ли, в коллецию шейпов AndreTM

Skype: andre.tm.007
Donate: Q iwi: 9517375010

Сообщение Видимо, это были не совсем «натуральные текстбоксы».

Хотя да, ActiveX’ы — они такие, лезут, понимаешь ли, в коллецию шейпов Автор — AndreTM
Дата добавления — 31.08.2017 в 17:13

Как быстро заполнить/очистить элементы на форме(TextBox-ы, ComboBox-ы)

Очень часто при работе с формами(UserForm) приходится заполнять значениями КомбоБоксы(ComboBox) и ТекстБоксы(TextBox). Иногда однотипными данными. Или очистить их все после выполнения какого-либо действия. А может проверить, все ли элементы заполнены, прежде чем продолжать действие. Если КомбоБоксов/ТекстБоксов пару штучек — не проблема

и всех делов. А если их порядка двадцати? Или больше? Мало того, что писать это все долго, так еще и код растягивается, как портянка. Но это можно сделать гораздо проще и удобнее. Воспользоваться можно несколькими способами. Этот способ наиболее популярен, если необходимо произвести однотипные действия со всеми ТекстБоксами на форме:

Sub All_TextBoxes() Dim oControl As Control For Each oControl In UserForm1.Controls If TypeOf oControl Is MSForms.TextBox Then oControl.Value = «» Next oControl End Sub

В примере элементы формы очищаются, но в код можно подставить любое действие — добавление нового элемента списка(для ComboBox), поменять представление данных в TextBox, проверить наличие данных в проверяемом элементе и т.д. Тут уж зависит от поставленной задачи. Конечно, подобным способом можно проделать разные действия и с остальными элементами формы. Только надо будет заменить тип для проверки элементов:

ComboBox — MSForms.ComboBox CheckBox — MSForms.CheckBox CommandButton — MSForms.CommandButton Frame — MSForms.Frame Image — MSForms.Image Label — MSForms.Label ListBox — MSForms.ListBox MultiPage — MSForms.MultiPage SpinButton — MSForms.SpinButton TabStrip — MSForms.TabStrip ToggleButton — MSForms.ToggleButton

Это не единственный способ проделывания однотипных действий с элементами формы. Код ниже использует имена элементов для обращения к ним:

Sub All_TextBoxes() Dim li As Long For li = 1 To 10 UserForm1.Controls(«TextBox» & li).Value = li Next li End Sub

Недостаток данного метода: имена элементов должны строго соответствовать используемым в коде и лишь нумерация на конце имени должна различаться. За нумерацию отвечает переменная li и, конечно, цикл, в котором задается начальное и конечные значения. В примере ТекстБоксам с именами от «TextBox1» до «TextBox10» будут подставлены значения номеров самих ТекстБоксов. Но такой недостаток может быть очень полезным. Например, если необходимо проделать действия не над всеми ТекстБоксами, а лишь над некоторыми из них. Тогда все, что необходимо дать ТекстБоксам определенные имена с нумерацией(«ToDB1″,»ToDB2» и т.д.) и в зависимости от имени можно проделывать различные действия: стирать значения, менять свойства элементов и т.д.
И есть еще один плюс такого подхода: когда необходимо заполнить значения ТекстБоксов значениями ячеек. Скажем надо заполнить 10 ТекстБоксов(с именами TextBox1 , TextBox2 , TextBox3 и т.д.) из ячеек диапазона A2:A11 листа с именем «Лист2″(т.е. из 10 ячеек, начиная с ячейки A2). Код будет выглядеть так:

Sub Fill_TextBoxes_FromCells() Dim li As Long For li = 1 To 10 UserForm1.Controls(«TextBox» & li).Value = Sheets(«Лист2»).Range(«A» & li).Value ‘или применить Cells вместо Range ‘UserForm1.Controls(«TextBox» & li).Value = Sheets(«Лист2»).Cells(li, 1).Value Next li End Sub

Подробнее про обращение к диапазонам из VBA можно узнать из этой статьи: Как обратиться к диапазону из VBA

Tips_Macro_WorkWithGroupControls.xls (51,5 KiB, 3 458 скачиваний)

Статья помогла? Поделись ссылкой с друзьями!

Поиск по меткам

Вы правильно идете. Просес овладения VBA (как и любой) содержит две параллельные дороги — теория и задачи. По теории горы книг и все переписывают азы друг у друга, да ктому же читаешь на 30 странице и не помнишь что на 1 -ой. Решение отдельной задачи с подробными коментариями, это вторая, очень нужная Дорога. Спосибо.

А как сделать тоже самое, имею ввиду очистку, только на листе.Сейчас пользуюсь
таким кодом.
Private Sub test()
TextBox1 = «»
TextBox2 = «»
TextBox3 = «»
TextBox4 = «»
TextBox5 = «»
End Sub

Спасибо пришлось самой найти
For iCount = 1 To 10
OLEObjects(«TextBox» & iCount).Object.Value = «»
Но я вам благодарна, что ваши идеи заставляют извилины работать.

При использовании combobox (в макросе Exel) часто возникают новые значения,которые должны быть занесены в ниспадающий список. Мохно ли автоматизировать занесение этих значений в список после набора их в окне combobox.

Яков, я бы рекомендовал на форум обратиться. Ваш вопрос к статье никакого отношения не имеет.

Добрый день у меня на форме 10 комбобоксов я использую такой код т.е. пишу для каждого соmbobox отдельно

With Sheets(«справка»)
LastRow = .Cells(Rows.Count, 2).End(xlUp).Row
Me.ComboBox1.List = .Range(«b2:b» & LastRow).Value
Me.ComboBox2.List = .Range(«b2:b» & LastRow).Value
Me.ComboBox3.List = .Range(«b2:b» & LastRow).Value

Как можно сократить код.Спасибо.

Юрий, а статью-то прочитать не судьба? Там есть Ваш случай, только в качестве примера TextBox.

Разобрался .Все работает. Главное внимательно прочесть
Спасибо за сайт.

Ваш сайт для меня — просто находка! Какой вопрос ни возникает, здесь есть практически все ответы. Спасибо! И за эту статью отдельное спасибо!

На форме используются текстбоксы:
txtb_НачальнаяДата,txtb_КонечнаяДата,txtb_Cтоимость и т.д. до 10 штук. Начальные буквы txtb, а далее меняются окончания. Как очистить текстбоксы.
Вариант :txtb_НачальнаяДата.Value=»» -это понятно ,а через цикл можно?

Юрий, применить смекалку и доступные инструкции проверки:

Sub All_TextBoxes() Dim oControl As Control For Each oControl In UserForm1.Controls If TypeOf oControl Is MSForms.TextBox Then If left(Control.Name,4) = «txtb» Then oControl.Value = «» End If End If Next oControl End Sub

Подскажите пожалуйста, как мне заполнить Textbox, которые имеют разные названия (по типу «a», «h». ) из ячеек с7:с12.
Сейчас я использую такой код, но он очень уж не оптимальный исходя из того что мне надо заполнять 10 заданий, 10 вариантов, в каждом по 7 textbox (700 строчек).
.
If Co = «Вариант1» Then
h = Range(«c7»)
d = Range(«c8»)
q = Range(«c9»)
h1 = Range(«c10»)
d1 = Range(«c11»)
q1 = Range(«c12»)
ElseIf Co = «Вариант2» Then
h = Range(«d7»)
d = Range(«d8»)
q = Range(«d9»)
h1 = Range(«d10»)
d1 = Range(«d11»)
q1 = Range(«d12»)
ElseIf Co = «Вариант3» Then
h = Range(«e7»)
d = Range(«e8»)
q = Range(«e9»)
h1 = Range(«e10»)
d1 = Range(«e11»)
q1 = Range(«e12»)
.
заранее спасибо.

VBA Excel. Элемент управления TextBox (текстовое поле)

Элемент управления пользовательской формы TextBox в VBA Excel. Использование текстового поля для ввода и вывода информации, основные свойства, примеры. Привязка текстового поля к ячейке.

Элемент управления TextBox

UserForm.TextBox – это элемент управления пользовательской формы, предназначенный для ввода, редактирования и вывода информации в текстовом формате.

Текстовое поле незаменимо, когда необходимо заполнить пользовательскую форму новой информацией. Например, это может быть ФИО нового сотрудника и его паспортные данные, сумма выручки за день, новый электронный адрес и многое-многое другое.

Если с помощью текстового поля требуется вводить заранее известную информацию, элементы которой можно сгруппировать в список, то в этом случае удобнее вместо элемента управления TextBox использовать ListBox или ComboBox.

Вводить информацию в TextBox на открытой форме можно не только с помощью клавиатуры, но и вставкой текста из буфера обмена. Когда текстовое поле применяется для ввода пароля, есть возможность отобразить все его знаки замещающим символом, например, звездочкой.

Иногда, если на пользовательской форме используется только одно текстовое поле и кнопка «OK» (или кнопки «OK» и «Отмена»), для ввода информации такую форму можно заменить функцией InputBox, а для вывода информации, когда не требуется редактирование отображаемого текста, – функцией MsgBox.

Свойства текстового поля

СвойствоОписание
AutoSize*Автоподбор размера текстового поля. True – размер автоматически подстраивается под длину размещаемой строки. False – размер элемента управления определяется свойствами Width и Height.
AutoTabВключение автоматической табуляции – передачи фокуса следующему элементу управления при достижении максимального числа символов при значениях свойства MaxLenght > 0. True – автоматическая табуляция включена, False – выключена.
ControlSourceСсылка на источник данных для поля TextBox.
ControlTipTextТекст всплывающей подсказки при наведении курсора на TextBox.
EnabledВозможность ввода, редактирования, копирования, вставки, удаления текста. True – все перечисленные опции включены, False – выключены (цвет текста в поле становится серым).
FontШрифт, начертание и размер текста в поле.
HeightВысота текстового поля.
LeftРасстояние от левого края внутренней границы пользовательской формы до левого края текстового поля.
LockedЗапрет ввода, редактирования, удаления текста. True – перечисленные опции запрещены (разрешено выделение и копирование текста), False – перечисленные опции разрешены.
MaxLenghtМаксимальная длина строки. По умолчанию – 0, что означает – ограничений нет.
MultilineУстанавливает многострочный (True) или однострочный (False) режим ввода-вывода текста.
PasswordCharЗадает символ, который будет отображаться при вводе знаков пароля.
TabIndexОпределяет позицию элемента управления в очереди на получение фокуса при табуляции, вызываемой свойством AutoTab или нажатием клавиш «Tab», «Enter». Отсчет начинается с 0.
Text**Текстовое содержимое (значение) поля (=Value).
TextAlignВыравнивание текста: 1 (fmTextAlignLeft) – по левому краю, 2 (fmTextAlignCenter) – по центру, 3 (fmTextAlignRight) – по правому краю.
TopРасстояние от верхнего края внутренней границы пользовательской формы до верхнего края текстового поля.
Value**Текстовое содержимое (значение) поля (=Text).
VisibleВидимость текстового поля. True – TextBox отображается на пользовательской форме, False – TextBox скрыт.
WidthШирина текстового поля.
WordWrapАктуально при Multiline = True. Переход на новую строку при достижении границы текстового поля. True – переход включен, False – переход выключен.

* При использовании свойства AutoSize в значении True следует учитывать, что автоматическое изменение размеров поля при вводе текста может нарушить дизайн пользовательской формы.
** Text и Value – это два обозначения одного и того же свойства. Если в окне Properties элемента управления TextBox в поле свойства Text начать ввод строки, в поле Value ввод будет дублироваться. И наоборот, при вводе текста в поле свойства Value, дублирование произойдет в поле Text.

В таблице перечислены только основные, часто используемые свойства текстового поля. Все доступные свойства отображены в окне Properties элемента управления TextBox.

Свойства BackColor, BackStyle, BorderColor, BorderStyle отвечают за внешнее оформление текстового поля и его границ. Попробуйте выбирать доступные значения этих свойств в окне Properties, наблюдая за изменениями внешнего вида элемента управления TextBox на проекте пользовательской формы.

Привязка текстового поля к ячейке

Привязать элемент управления TextBox к ячейке на рабочем листе можно двумя способами.

1. В окне Properties элемента управления TextBox в поле свойства ControlSource необходимо указать адрес ячейки:

2. Присвоить свойству ControlSource адрес ячейки в коде VBA Excel:

Читать еще:  Выбор листа excel vba
Ссылка на основную публикацию
Adblock
detector