Я новичок в VBA. Я создал программу на VBA, которая сравнивает значение msgbox со значением текстового поля, но результат неверный. Я скопировал приведенный ниже код. Что я сделал не так? Пожалуйста, помогите мне.

Private Sub CommandButton1_Click()

    Dim num As String
    num = Application.InputBox("enter num")
    If TextBox1.Value * num > TextBox2.Value Then
        MsgBox "textbox1 is higher"
    Else
        MsgBox "textbox2 is higher"    
    End If

End Sub
0
Sanoop Sanu 4 Сен 2016 в 13:28

2 ответа

Лучший ответ

Я предполагал, что вам нужны числа InpoutBox, но если это не так, просто замените все вхождения TextBox на нужный тип данных ({{X2}}, {{X3}}, ...) и { {X4}} с соответствующей функцией преобразования типа ({{X5 }}, {{X6}}, ...…

Private Sub CommandButton1_Click()

Dim num As Long

' convert the number received from the InputBox to a number (type Long)
num = CLng(Application.InputBox("enter num"))

If CLng(TextBox1.Value) * num > CLng(TextBox2.Value) Then
    MsgBox "textbox1 is higher"
Else
    MsgBox "textbox2 is higher"
End If

End Sub
0
Shai Rado 4 Сен 2016 в 10:33

Вам нужно было просто использовать функцию Val () при получении значений TextBox. это означает, что вам пришлось использовать Val(TextBox1.Value) вместо TextBox1.Value

Private Sub CommandButton1_Click()

Dim num As String
num = Application.InputBox("enter num")
If Val(TextBox1.Value) * num > Val(TextBox2.Value) Then
    MsgBox "textbox1 is higher"
Else
    MsgBox "textbox2 is higher"

End If

End Sub
0
Arun Thomas 4 Сен 2016 в 12:01