Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Сравнить TextBox и ячейку - Мир MS Excel

  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_, DrMini  
Сравнить TextBox и ячейку
Dorimar Дата: Суббота, 27.01.2018, 22:49 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 16
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Необходимо сравнить значение между TextBox в userform и ячейкой в листе. Если значения РАВНЫ, то в указанный столбец вывести результат, а если нет, то в указанном столбце будет 0. Проблема заключается в том, что макрос успешно справлялся, но только если значения - цифры. Сравниваемые значения могут содержать не только цифры, но и буквы и тут уже не могу додуматься как это реализовать. Использование Me.TextBox4.Text вместо val(TextBox4.Text) дало возможность записывать текст только в итоговую ячейку. Пожалуйста помогите разобраться.
[vba]
Код
Private Sub CommandButton1_Click()
Dim iLastRow As Long
iLastRow = Cells(Rows.Count, 1).End(xlUp).Row
    For i = 1 To iLastRow
        tb1 = Val(TextBox1.Text)
        tb2 = Val(TextBox2.Text)
        tb3 = Val(TextBox3.Text)
        tb4 = Me.TextBox4.Text
        If l1.Cells(i, tb1) = tb2 Then
           l1.Cells(i, tb3) = tb4
           Else
           l1.Cells(i, tb3) = 0
        End If
    Next
End Sub
[/vba]
К сообщению приложен файл: 0005011.xlsm (14.4 Kb)
 
Ответить
СообщениеНеобходимо сравнить значение между TextBox в userform и ячейкой в листе. Если значения РАВНЫ, то в указанный столбец вывести результат, а если нет, то в указанном столбце будет 0. Проблема заключается в том, что макрос успешно справлялся, но только если значения - цифры. Сравниваемые значения могут содержать не только цифры, но и буквы и тут уже не могу додуматься как это реализовать. Использование Me.TextBox4.Text вместо val(TextBox4.Text) дало возможность записывать текст только в итоговую ячейку. Пожалуйста помогите разобраться.
[vba]
Код
Private Sub CommandButton1_Click()
Dim iLastRow As Long
iLastRow = Cells(Rows.Count, 1).End(xlUp).Row
    For i = 1 To iLastRow
        tb1 = Val(TextBox1.Text)
        tb2 = Val(TextBox2.Text)
        tb3 = Val(TextBox3.Text)
        tb4 = Me.TextBox4.Text
        If l1.Cells(i, tb1) = tb2 Then
           l1.Cells(i, tb3) = tb4
           Else
           l1.Cells(i, tb3) = 0
        End If
    Next
End Sub
[/vba]

Автор - Dorimar
Дата добавления - 27.01.2018 в 22:49
Pelena Дата: Воскресенье, 28.01.2018, 07:58 | Сообщение № 2
Группа: Админы
Ранг: Местный житель
Сообщений: 19603
Репутация: 4660 ±
Замечаний: ±

Excel 365 & Mac Excel
Для tb2 надо убрать Val
[vba]
Код
tb2 = TextBox2.Text
[/vba]


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
СообщениеДля tb2 надо убрать Val
[vba]
Код
tb2 = TextBox2.Text
[/vba]

Автор - Pelena
Дата добавления - 28.01.2018 в 07:58
Dorimar Дата: Воскресенье, 28.01.2018, 08:55 | Сообщение № 3
Группа: Пользователи
Ранг: Новичок
Сообщений: 16
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Для tb2 надо убрать Val

Пробовал, компилируется, выполняется, но работает только с форматом "ЦифраТекст" или чисто текстовым. При попытке сравнить textbox, в котором только цифры, с ячейкой возвращает нули по всему столбцу независимо от условия.


Сообщение отредактировал Dorimar - Воскресенье, 28.01.2018, 08:56
 
Ответить
Сообщение
Для tb2 надо убрать Val

Пробовал, компилируется, выполняется, но работает только с форматом "ЦифраТекст" или чисто текстовым. При попытке сравнить textbox, в котором только цифры, с ячейкой возвращает нули по всему столбцу независимо от условия.

Автор - Dorimar
Дата добавления - 28.01.2018 в 08:55
RAN Дата: Воскресенье, 28.01.2018, 10:09 | Сообщение № 4
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
[vba]
Код
Private Sub CommandButton1_Click()
Dim iLastRow As Long
iLastRow = Cells(Rows.Count, 1).End(xlUp).Row
For i = 1 To iLastRow
tb1 = Val(TextBox1.Text)
tb2 = TextBox2.Text
tb3 = Val(TextBox3.Text)
tb4 = Me.TextBox4.Text
If CStr(Cells(i, tb1)) = tb2 Then
Cells(i, tb3) = tb4
Else
Cells(i, tb3) = 0
End If
Next
End Sub
[/vba]


Быть или не быть, вот в чем загвоздка!

Сообщение отредактировал RAN - Воскресенье, 28.01.2018, 10:09
 
Ответить
Сообщение[vba]
Код
Private Sub CommandButton1_Click()
Dim iLastRow As Long
iLastRow = Cells(Rows.Count, 1).End(xlUp).Row
For i = 1 To iLastRow
tb1 = Val(TextBox1.Text)
tb2 = TextBox2.Text
tb3 = Val(TextBox3.Text)
tb4 = Me.TextBox4.Text
If CStr(Cells(i, tb1)) = tb2 Then
Cells(i, tb3) = tb4
Else
Cells(i, tb3) = 0
End If
Next
End Sub
[/vba]

Автор - RAN
Дата добавления - 28.01.2018 в 10:09
Апострофф Дата: Воскресенье, 28.01.2018, 10:10 | Сообщение № 5
Группа: Проверенные
Ранг: Обитатель
Сообщений: 468
Репутация: 129 ±
Замечаний: 0% ±

Excel 1997
[vba]
Код
Private Sub CommandButton1_Click()
Dim iLastRow As Long
iLastRow = Cells(Rows.Count, 1).End(xlUp).Row
    For i = 1 To iLastRow
        If Cells(i, TextBox1).Text = TextBox2 Then
           Cells(i, TextBox3) = TextBox4
        Else
           Cells(i, TextBox3) = 0
        End If
    Next
End Sub
[/vba]
 
Ответить
Сообщение[vba]
Код
Private Sub CommandButton1_Click()
Dim iLastRow As Long
iLastRow = Cells(Rows.Count, 1).End(xlUp).Row
    For i = 1 To iLastRow
        If Cells(i, TextBox1).Text = TextBox2 Then
           Cells(i, TextBox3) = TextBox4
        Else
           Cells(i, TextBox3) = 0
        End If
    Next
End Sub
[/vba]

Автор - Апострофф
Дата добавления - 28.01.2018 в 10:10
Dorimar Дата: Воскресенье, 28.01.2018, 10:34 | Сообщение № 6
Группа: Пользователи
Ранг: Новичок
Сообщений: 16
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Большое спасибо за помощь, теперь всё работает! :)
 
Ответить
СообщениеБольшое спасибо за помощь, теперь всё работает! :)

Автор - Dorimar
Дата добавления - 28.01.2018 в 10:34
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2026 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!