Необходимо сравнить значение между 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]
Необходимо сравнить значение между 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
Пробовал, компилируется, выполняется, но работает только с форматом "ЦифраТекст" или чисто текстовым. При попытке сравнить textbox, в котором только цифры, с ячейкой возвращает нули по всему столбцу независимо от условия.
Пробовал, компилируется, выполняется, но работает только с форматом "ЦифраТекст" или чисто текстовым. При попытке сравнить textbox, в котором только цифры, с ячейкой возвращает нули по всему столбцу независимо от условия.Dorimar
Сообщение отредактировал Dorimar - Воскресенье, 28.01.2018, 08:56
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]
[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
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