Vba excel textbox проверка

Note. Check if the TextBox1 is empty is easy by using TextBox1.Value = "".

But the problem is when the user hit the spacebar, TextBox1 will still recognize it as a value. In such case, my data will appear as an empty cell with 1 space inside. So my question is, is there any method to check TextBox1.value for empty and also not consist of space whether there are 1 or more space? Million thanks to all.

asked Jan 1, 2013 at 8:15

4 Leave Cover's user avatar

4 Leave Cover4 Leave Cover

1,21812 gold badges39 silver badges81 bronze badges

A common trick is to check like this:

trim(TextBox1.Value & vbnullstring) = vbnullstring

this will work for spaces, empty strings, and genuine null values

answered Jan 1, 2013 at 8:18

Lord Peter's user avatar

4

Most terse version I can think of

Len(Trim(TextBox1.Value)) = 0

If you need to do this multiple times, wrap it in a function

Public Function HasContent(text_box as Object) as Boolean
    HasContent = (Len(Trim(text_box.Value)) > 0)
End Function

Usage

If HasContent(TextBox1) Then
    ' ...

answered Jan 1, 2013 at 8:38

pyrospade's user avatar

pyrospadepyrospade

7,7703 gold badges36 silver badges52 bronze badges

4

Here is the code to check whether value is present or not.

If Trim(textbox1.text) <> "" Then
     'Your code goes here
Else
     'Nothing
End If

I think this will help.

nateAtwork's user avatar

nateAtwork

1681 gold badge4 silver badges13 bronze badges

answered Jan 1, 2013 at 8:21

Kanwaljeet Mehta's user avatar

6

You can use the following code to check if a textbox object is null/empty

'Checks if the box is null

If Me.TextBox & "" <> "" Then

        'Enter Code here...

End if

Thomas G's user avatar

Thomas G

9,7167 gold badges29 silver badges40 bronze badges

answered Apr 24, 2016 at 12:46

Ashley Niekerk's user avatar

0

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
Private Sub CommandButton1_Click()
If Not test(Me) Then
    MsgBox ("Заполните все поля")
    Exit Sub
End If
'-----------------Правильная подготовка к аудиту
c7 = 7 'номер колонки для TextBox7
rk7 = Sheets("calibr").Columns(c7).Rows(65536).End(xlUp).Row + 1
Sheets("calibr").Cells(rk7, c7) = Me.TextBox7.Value
'-----------------Поведение Аудиторов GMP/BBQ в ходе аудита
c8 = 8 'номер колонки для TextBox8
rk8 = Sheets("calibr").Columns(c8).Rows(65536).End(xlUp).Row + 1
Sheets("calibr").Cells(rk8, c8) = Me.TextBox8.Value
'-----------------Продолжительность проведения аудита
c9 = 9 'номер колонки для TextBox9
rk9 = Sheets("calibr").Columns(c9).Rows(65536).End(xlUp).Row + 1
Sheets("calibr").Cells(rk9, c9) = Me.TextBox9.Value
'-----------------Аудит проведен правильно
c10 = 10 'номер колонки для TextBox10
rk10 = Sheets("calibr").Columns(c10).Rows(65536).End(xlUp).Row + 1
Sheets("calibr").Cells(rk10, c10) = Me.TextBox10.Value
'----------------- выборочная проверка в ходе аудита на  выполнение предыдущих замечаний
c11 = 11 'номер колонки для TextBox11
rk11 = Sheets("calibr").Columns(c11).Rows(65536).End(xlUp).Row + 1
Sheets("calibr").Cells(rk11, c11) = Me.TextBox11.Value
'-----------------Способность  Аудиторами GMP/BBQ "видеть" позитивные и негативные моменты
c12 = 12 'номер колонки для TextBox12
rk12 = Sheets("calibr").Columns(c12).Rows(65536).End(xlUp).Row + 1
Sheets("calibr").Cells(rk12, c12) = Me.TextBox12.Value
'----------------- Правильность, своевременность заполнения   GMP-action plan
c13 = 13 'номер колонки для TextBox13
rk13 = Sheets("calibr").Columns(c13).Rows(65536).End(xlUp).Row + 1
Sheets("calibr").Cells(rk13, c13) = Me.TextBox13.Value
'----------------- Аудиторы GMP/BBQ представились и назвали цель визита
c14 = 14 'номер колонки для TextBox14
rk14 = Sheets("calibr").Columns(c14).Rows(65536).End(xlUp).Row + 1
Sheets("calibr").Cells(rk14, c14) = Me.TextBox14.Value
'----------------- были озвучены и положительные моменты
c15 = 15 'номер колонки для TextBox15
rk15 = Sheets("calibr").Columns(c15).Rows(65536).End(xlUp).Row + 1
Sheets("calibr").Cells(rk15, c15) = Me.TextBox15.Value
'----------------- обсуждались риски по пищевой безопасности
c16 = 16 'номер колонки для TextBox16
rk16 = Sheets("calibr").Columns(c16).Rows(65536).End(xlUp).Row + 1
Sheets("calibr").Cells(rk16, c16) = Me.TextBox16.Value
'----------------- вопросы, связанные с инструкциями и процедурами
c17 = 17 'номер колонки для TextBox17
rk17 = Sheets("calibr").Columns(c17).Rows(65536).End(xlUp).Row + 1
Sheets("calibr").Cells(rk17, c17) = Me.TextBox17.Value
'-----------------попаданием посторонних предметов
c18 = 18 'номер колонки для TextBox18
rk18 = Sheets("calibr").Columns(c18).Rows(65536).End(xlUp).Row + 1
Sheets("calibr").Cells(rk18, c18) = Me.TextBox18.Value
'-----------------возможные последствия для здоровья наших потребителей
c19 = 19 'номер колонки для TextBox19
rk19 = Sheets("calibr").Columns(c19).Rows(65536).End(xlUp).Row + 1
Sheets("calibr").Cells(rk19, c19) = Me.TextBox19.Value
'-----------------определены  мероприятия по устранению опасных для продукта  условий/действий
c20 = 20 'номер колонки для TextBox20
rk20 = Sheets("calibr").Columns(c20).Rows(65536).End(xlUp).Row + 1
Sheets("calibr").Cells(rk20, c20) = Me.TextBox20.Value
'-----------------По окончании беседы Аудиторы GMP/BBQ поблагодарили работника
c21 = 21 'номер колонки для TextBox21
rk21 = Sheets("calibr").Columns(c21).Rows(65536).End(xlUp).Row + 1
Sheets("calibr").Cells(rk21, c21) = Me.TextBox21.Value
'-----------------NGMP - visual standarts
c22 = 22 'номер колонки для TextBox22
rk22 = Sheets("calibr").Columns(c22).Rows(65536).End(xlUp).Row + 1
Sheets("calibr").Cells(rk22, c22) = Me.TextBox22.Value
'-----------------Результат
c23 = 23 'номер колонки для TextBox23
rk23 = Sheets("calibr").Columns(c23).Rows(65536).End(xlUp).Row + 1
Sheets("calibr").Cells(rk23, c23) = Me.TextBox23.Value
'-----------------Результаты калибрации сообщены аудиторам
c24 = 24 'номер колонки для TextBox24
rk24 = Sheets("calibr").Columns(c24).Rows(65536).End(xlUp).Row + 1
Sheets("calibr").Cells(rk24, c24) = Me.TextBox24.Value
'-----------------Дата
c1 = 1 'номер колонки для TextBox1
rk1 = Sheets("calibr").Columns(c1).Rows(65536).End(xlUp).Row + 1
Sheets("calibr").Cells(rk1, c1) = Me.TextBox1.Value
'-----------------Номер участка
c3 = 3 'номер колонки для TextBox2
rk3 = Sheets("calibr").Columns(c3).Rows(65536).End(xlUp).Row + 1
Sheets("calibr").Cells(rk3, c3) = Me.TextBox2.Value
'-----------------Описание участка
c4 = 4 'номер колонки для TextBox3
rk4 = Sheets("calibr").Columns(c4).Rows(65536).End(xlUp).Row + 1
Sheets("calibr").Cells(rk4, c4) = Me.TextBox3.Value
'-----------------Аудитор 1
c5 = 5 'номер колонки для TextBox5
rk5 = Sheets("calibr").Columns(c5).Rows(65536).End(xlUp).Row + 1
Sheets("calibr").Cells(rk5, c5) = Me.TextBox5.Value
'-----------------Аудитор 2
c6 = 6 'номер колонки для TextBox6
rk6 = Sheets("calibr").Columns(c6).Rows(65536).End(xlUp).Row + 1
Sheets("calibr").Cells(rk6, c6) = Me.TextBox6.Value
'-----------------Калибратор
c2 = 2 'номер колонки для TextBox1
rk2 = Sheets("calibr").Columns(c2).Rows(65536).End(xlUp).Row + 1
Sheets("calibr").Cells(rk2, c2) = Me.ComboBox1.Value
 
End Sub

Если вы хотите проверить, являются ли текстовые поля в указанном userfom пустыми или нет в Excel, метод, описанный в этой статье, может вам помочь.

Проверьте, пусты ли текстовые поля в пользовательской форме или нет с кодом VBA


Проверьте, пусты ли текстовые поля в пользовательской форме или нет с кодом VBA

Приведенный ниже код VBA может помочь вам проверить, все ли текстовые поля в указанной пользовательской форме пусты или нет в Excel. Пожалуйста, сделайте следующее.

1. нажмите другой + F11 , чтобы открыть Microsoft Visual Basic для приложений окно.

2. в Microsoft Visual Basic для приложений окна, нажмите Вставить > Модули. Затем скопируйте ниже код VBA в окно кода.

Код VBA: проверьте, являются ли текстовые поля в пользовательской форме пустыми или нет

Sub CheckTextBox()
    Dim fTextBox As Object
    Dim xTxtName As String
    Dim xEptTxtName As String
    For Each fTextBox In UserForm1.Controls
        If TypeName(fTextBox) = "TextBox" Then
            If fTextBox.Text = "" Then
                xEptTxtName = xEptTxtName & fTextBox.Name & " is empty" & vbNewLine
            Else
                xTxtName = xTxtName & fTextBox.Name & " is not empty" & vbNewLine
            End If
        End If
    Next
    If xEptTxtName <> "" Or xTxtName <> "" Then
        MsgBox xEptTxtName & vbNewLine & xTxtName
    End If
End Sub

Note: In the code, UserForm1 is the name of the userform which contains the textboxes you will check.

3. Press the F5 key to run the code. Then a Microsoft Excel dialog box pops up to tell you which textbox is empty and which is not empty as below screenshot shown.


Related articles:

  • How to check if first character in a cell is a letter or number in Excel?
  • How to check if a cell value is between two values in Excel?
  • How to format a textbox as a percentage in Excel?
  • How to auto select text of a textbox when it is selected in Excel?

The Best Office Productivity Tools

Kutools for Excel Solves Most of Your Problems, and Increases Your Productivity by 80%

  • Reuse: Quickly insert complex formulas, charts and anything that you have used before; Encrypt Cells with password; Create Mailing List and send emails…
  • Super Formula Bar (easily edit multiple lines of text and formula); Reading Layout (easily read and edit large numbers of cells); Paste to Filtered Range
  • Merge Cells/Rows/Columns without losing Data; Split Cells Content; Combine Duplicate Rows/Columns… Prevent Duplicate Cells; Compare Ranges
  • Select Duplicate or Unique Rows; Select Blank Rows (all cells are empty); Super Find and Fuzzy Find in Many Workbooks; Random Select…
  • Exact Copy Multiple Cells without changing formula reference; Auto Create References to Multiple Sheets; Insert Bullets, Check Boxes and more…
  • Extract Text, Add Text, Remove by Position, Remove Space; Create and Print Paging Subtotals; Convert Between Cells Content and Comments
  • Super Filter (save and apply filter schemes to other sheets); Advanced Sort by month/week/day, frequency and more; Special Filter by bold, italic…
  • Combine Workbooks and WorkSheets; Merge Tables based on key columns; Split Data into Multiple Sheets; Batch Convert xls, xlsx and PDF
  • More than 300 powerful features. Supports Office / Excel 2007-2021 and 365. Supports all languages. Easy deploying in your enterprise or organization. Full features 30-day free trial. 60-day money back guarantee.

kte tab 201905

Read More… Free Download… Purchase… 


Office Tab Brings Tabbed interface to Office, and Make Your Work Much Easier

  • Enable tabbed editing and reading in Word, Excel, PowerPoint, Publisher, Access, Visio and Project.
  • Open and create multiple documents in new tabs of the same window, rather than in new windows.
  • Increases your productivity by 50%, and reduces hundreds of mouse clicks for you every day!

officetab bottom

Read More… Free Download… Purchase… 

Comments (0)


No ratings yet. Be the first to rate!

Тема приобрела другое направление. Прошу переименовать:  
«Проверка ввода числовых значений в TextBox»  

  Спасибо за предложенные варианты.  
В показанном коде:  
— не понял, зачем отключать Backspace – наоборот, удобно, если неправильный ввод;  
— при вводе двух знаков после запятой нельзя ввести новое значение, выделив введенное. Т.е. вводили-вводили, написали «…,00», решили ввести по новой — ан нет, не пустит, пока не удалишь написанное. Так же не дает добавить пропущенное число: надо 235,22, ввели 25,22 — все, кончилось введение.    

  Еще неудобство в данном случае — все равно без процедуры …_Exit() не обойтись — нужно форматировать введенное число Format(…, «#,##0.00»).  

  Так как форматирование необходимо (визуально приятнее видеть число с разделением разрядов), можно использовать код Игоря, отключив проверку на «…,00» — после ввода любого числа символов после запятой при выходе из TextBox или Frame (здесь TextBox) форматирование оставит только два знака. Но в таком случае используется дополнительная процедура …_KeyPress.  

  Пока что мысль с грозным предупреждением через MsgBox не отбрасываю.

Данный код позволяет выполнять проверку корректности ввода числового значения в текстовое поле (textbox) на форме,
автоматически блокируя ввод запрещенных символов

Используется событие KeyPress элемента управления TextBox

Допустимые символы: цифры от 0 до 9, точка (запятая автоматически заменяется на точку), знак «минус» (перед числом)

Предполагается, что текстовое поле имеет имя TextBox_Multiplier

Private Sub TextBox_Multiplier_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
    On Error Resume Next
    Select Case KeyAscii
        Case 48 To 57, 8        ' цифры 0 - 9 и <Backspace> (эти символы всегда разрешены)
        Case 44, 46        ' обработка десятичного разделителя (44 - код запятой, 46 - код точки)
            KeyAscii = 46        ' если в поле  введена запятая, то заменим ее на точку
            If InStr(1, Me.TextBox_Multiplier.Text, ".") Then KeyAscii = 0        ' вторую точку нельзя
        Case 45        ' дефис (минус перед числом)
            If InStr(1, Me.TextBox_Multiplier.Text, "-") Then KeyAscii = 0        ' второй минус нельзя
            If Me.TextBox_Multiplier.SelStart Then KeyAscii = 0        ' минус допустим только перед числом
        Case Else
            KeyAscii = 0        ' остальные символы запрещены
    End Select
End Sub
  • 23052 просмотра

Не получается применить макрос? Не удаётся изменить код под свои нужды?

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

Проверка значений в Textbox Диалогового окна VBA

Jelvis

Дата: Среда, 06.03.2019, 14:49 |
Сообщение № 1

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

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

Сообщений: 17


Репутация:

0

±

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


Excel 2016

Добрый день! Подскажите пожалуйста что делаю не правильно.
В диалоговом окне есть форма Textbox — tbcreatename
Ниже расположена кнопка, при нажатии на которую необходимо сделать проверку на то, что это поле пустое (Если да, то выводим сообщение об ошибке)
Если поле не пустое, берём значения из этого Textbox’a и присваиваем в значения .value строки которая расположена ниже.
А если и она занята, то в строку еще ниже, покажу на скриншоте.

[vba]

Код

Private Sub btnCreatecard_Click()
    If (tbcreatename.Value = «») Then: MsgBox («Введите Имя, Фамилию и Отчество ученика!»)
    If (tbstudent1.Value = «») Then: tbstudent1.value = tbcreatename.value
End Sub

[/vba]

P.S. поле для проверки tbcreatename
Поля для вставки tbstudent1, tbstudent2, tbstudent3, tbstudent4, tbstudent5, tbstudent6

Не могу понять как это сделать, то ошибку выдает Else without If , а если пишу ElseIf то пишет error expression.

К сообщению приложен файл:

3145513.png
(49.0 Kb)

Сообщение отредактировал JelvisСреда, 06.03.2019, 15:06

 

Ответить

_Boroda_

Дата: Среда, 06.03.2019, 14:59 |
Сообщение № 2

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

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

Сообщений: 16618


Репутация:

6465

±

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


2003; 2007; 2010; 2013 RUS

Пишите if-then в нормальном виде, без двоеточий, тогда и ElseIf сможете вставить. Не, его и в кратком виде вставить можно, через двоеточие, но зачем?
[vba]

Код

If tbstudent1.Value = «» Then
    tbstudent1.Value = tbcreatename.Value
ElseIf tbstudent2.Value = «» Then
    tbstudent2.Value = tbcreatename.Value
    …
End If

[/vba]


Скажи мне, кудесник, любимец ба’гов…
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995

 

Ответить

Jelvis

Дата: Среда, 06.03.2019, 15:05 |
Сообщение № 3

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

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

Сообщений: 17


Репутация:

0

±

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


Excel 2016

_Boroda_, Спасибо, что-то я не в ту степь тыкал) Все отлично)

 

Ответить

Примечание. Проверьте, пуст ли TextBox1 пуст, используя TextBox1.Value = "".

Но проблема в том, что пользователь нажал кнопку spacebar, TextBox1 все равно распознает его как значение. В таком случае мои данные будут отображаться как пустая ячейка с 1 space внутри. Итак, мой вопрос: есть ли какой-либо метод для проверки TextBox1.value для пустого, а также не состоящий из space, есть ли 1 или более space? Миллион благодаря всем.

01 янв. 2013, в 07:51

Поделиться

Источник

4 ответа

Общим трюком является проверка:

trim(TextBox1.Value & vbnullstring) = vbnullstring

это будет работать для пробелов, пустых строк и подлинных нулевых значений

Lord Peter
01 янв. 2013, в 10:13

Поделиться

Самая краткая версия, о которой я могу думать

Len(Trim(TextBox1.Value)) = 0

Если вам нужно сделать это несколько раз, оберните его в функцию

Public Function HasContent(text_box as Object) as Boolean
    HasContent = (Len(Trim(text_box.Value)) > 0)
End Function

Использование

If HasContent(TextBox1) Then
    ' ...

pyrospade
01 янв. 2013, в 08:52

Поделиться

Вот код, чтобы проверить, присутствует ли значение.

If Trim(textbox1.text) <> "" Then
     'Your code goes here
Else
     'Nothing
End If

Я думаю, что это поможет.

Kanwaljeet Mehta
01 янв. 2013, в 10:20

Поделиться

Вы можете использовать следующий код, чтобы проверить, является ли объект текстового поля пустым/пустым

'Checks if the box is null

If Me.TextBox & "" <> "" Then

        'Enter Code here...

End if

Ashley Niekerk
24 апр. 2016, в 13:50

Поделиться

Ещё вопросы

  • 1Как отформатировать число, полученное из итератора Struts2?
  • 0C ++ Как игнорировать определенный метод в заголовочном файле?
  • 1Как определить макет, который будет работать на экранах 720p и 1080p?
  • 1Как получить Непримитивные данные в WebMethod?
  • 1Сумма в 2-мерном массиве
  • 1JPA / Hibernate не находит сопоставленные классы после развертывания
  • 0Правильная установка процентной высоты родительского div и дочернего div
  • 1Что в этом случае вернет intersects ()?
  • 1Изменить интервалы времени после увеличения
  • 0Используйте RSA, когда запускаете createKey, он всегда зависает, а затем получает отчет об ошибке
  • 0Совет по производительности редактора карт
  • 1Как синхронизировать экземпляр, переданный в несколько мест?
  • 0sql mariadb, синтаксис ошибки над разделом
  • 0jquery ajaxForm uploadProgress кросс-доменная загрузка
  • 1Как продолжить цикл после определенного модулем исключения в Python?
  • 0MySql меньше количества с предложением Group By
  • 1Открытие файлов с пробелами в outlook.OpenSharedItem выдает ошибку
  • 1JavaFX Popup под узлом
  • 1Android: запустите приложение с анимацией
  • 1Нахождение минимума и максимума в массиве
  • 0Рассчитать массив уникальных стеблей в JavaScript?
  • 1Как отправить XML-файл, используя http пост в Android. Где я положил XML-файлы в коде
  • 1Связь клиента с конкретным клиентом через сервер
  • 1Создать слова с ошибками (опечатки)
  • 1Ошибка addAttachment в XML-RPC при использовании Java
  • 0Курортные LIs в разных ULs
  • 0Преобразовать адрес улицы в координаты и поместить в html
  • 0(Qt C ++) Ошибка после запуска большого цикла (Готов платить)
  • 0Вернуть первый элемент из массива и еще один случайный элемент
  • 0DREAMFACTORY: Создать пользователя с приостановленным состоянием и активировать его с помощью пользовательского URL
  • 0Visual Studio 2012 ошибка: приложение не удалось правильно запустить (0xc0000007b)
  • 0Сортировка массива (nx 2) по первому столбцу с использованием функции sort () алгоритма STL
  • 1Отношение FK не было загружено, потому что тип недоступен
  • 0jquery возвращает только текст из отфильтрованных результатов
  • 1Отображение части веб-страницы в веб-просмотре
  • 0Рисование холста в элементе, который был только что добавлен
  • 0Модуль AngularJS загрузка бар не работает
  • 0Соединение Python с ошибкой mysql: неожиданный отступ [закрыт]
  • 0Невозможно сослаться на отфильтрованный массив в ngRepeat — AngularJS
  • 0JQuery-фалькон отправить кнопку нажмите
  • 1Общие слои, разные модели
  • 0Как прочитать / извлечь значения текстового файла, который загружен в HTML-форму в другой текстовый файл с помощью PHP?
  • 0Исправлены заголовок и боковая панель, но прокручиваемый контент и область заголовка
  • 1Pandas datetime: найти правильный год для первой даты после datetime
  • 1Как отфильтровать NaN в функции фильтра javascripts
  • 1Как объединить кортежи в python
  • 1Как сравнить учетные данные для входа в базу данных, используя JDBC (PostgreSQL)
  • 1Java — Как ограничить создание объекта, чтобы создать его только с использованием другого класса
  • 0JQuery / CSS Div не остается видимым / всегда исчезают
  • 1ConstraintLayout: анимация translationX для одновременного нажатия кнопки RadioButton и ImageView

Сообщество Overcoder

Понравилась статья? Поделить с друзьями:
  • Vba excel textbox добавить
  • Vba excel textbox денежный формат
  • Vba excel textbox в ячейку
  • Vba excel textbox mask
  • Vba excel textbox in userform