Я новичок в 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
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
Вам нужно было просто использовать функцию 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
Похожие вопросы
Новые вопросы
vba
Visual Basic для приложений (VBA) - это управляемый событиями объектно-ориентированный язык программирования для написания макросов, используемый для всего пакета Office, а также для других приложений. VBA не эквивалентен VB.NET или VBS; если вы работаете в Visual Studio, используйте [vb.net]. Если ваш вопрос конкретно касается программирования любого приложения MS Office, также используйте соответствующий тег: [excel], [ms-access], [ms-word], [outlook] или [ms-project].