偶是菜鸟,请教各位大侠!
简单地说,我想做一个计算器,有3个text控件和一个command控件。举个例子,计算乘法,输入乘数1*乘数2,点击计算,显示计算结果。若没输入乘数1,要求弹出对话框错误提示。对话框显示“必须输入乘数1“,此时可以在对话框窗体中的text控件中输入乘数1,点击“确定”按钮,并计算出结果。

解决方案 »

  1.   

    Private Sub Command1_Click()
    Dim temp As String
     On Error GoTo ErrHandler
    If Text1.Text = "" Then
        temp = InputBox("请输入乘数,", "计算器", "")
    Text3.Text = temp * Val(Text2.Text)
    Else
    Text3.Text = Val(Text1.Text) * Val(Text2.Text)
    End If
    Exit Sub
    ErrHandler:
    End Sub
      

  2.   

    帮忙解决一下这个问题
    Private Sub Command1_Click()
    '实现计算功能
    Dim temp As String
    On Error GoTo ErrHandler
    If Text1.Text = "" Then
        temp = InputBox("请输入厚度值,", "错误", "") '厚度值为空的时候
    Dim zhizhong As Integer
    '定义纸重
    zhizhong = Val(Combo1.Text) * Val(Textt3.Text) / Val(Combo2.Text) / temp / 1000
    '计算纸重
    Else '厚度值正确的时候
    Dim zhizhong As Integer
    '定义纸重
    zhizhong = Val(Combo1.Text) * Val(Textt3.Text) / Val(Combo2.Text) / Val(Text1.Text) / 1000
    '计算纸重
    End If
    Exit Sub
    ErrHandler:
    End Sub程序有点乱,大侠们凑活看
    在执行的时候,没有输入厚度值,点击按钮,没有出现对话框,但是程序死掉了。
      

  3.   

    Private Sub Command1_Click()
        '实现计算功能
        Dim temp As String
        
        On Error GoTo ErrHandler
        
        If Trim(text1.Text) = "" Then
            text1.Text = InputBox("请输入厚度值,", "错误", "") '厚度值为空的时候
        End If
        
        '定义纸重
        Dim zhizhong As Integer
        
        '计算纸重
        zhizhong = Val(Combo1.Text) * Val(Textt3.Text) / Val(Combo2.Text) / Val(text1.Text) / 1000
        
        MsgBox "纸重: " & zhizhong
        Exit Sub
    ErrHandler:End Sub
      

  4.   

    Private Sub Command1_Click()
        '实现计算功能
        
        On Error GoTo ErrHandler
        
        If Trim(text1.Text) = "" Then
            text1.Text = InputBox("请输入厚度值,", "错误", "")  '厚度值为空的时候
        End If
        
        '定义纸重
        Dim zhizhong As Integer    '计算纸重
        zhizhong = Val(Combo1.Text) * Val(Textt3.Text) / Val(Combo2.Text) / Val(text1.Text) / 1000    MsgBox "纸重: " & zhizhong
        Exit Sub
    ErrHandler:End Sub
      

  5.   

    Private Sub Command1_Click()
    If Trim(Text1.Text) = "" Then MsgBox "必须输入乘数1"
    If Trim(Text2.Text) = "" Then Text2.Text = 0
    Text3.Text = Val(Trim(Text1.Text)) * Val(Trim(Text2.Text))
    End Sub
      

  6.   

    我按照你给的答案,把程序改成这样。没输入厚度值,点击command1后程序死了Private Sub Command1_Click()
    '实现计算功能
    Dim zhizhong As Integer
    '定义纸重
    Dim temp As StringOn Error GoTo ErrHandler
        If Trim(Text1.Text) = "" Then
            Text1.Text = InputBox("请输入厚度值,", "错误", "")  '厚度值为空的时候
        End If
    zhizhong = Val(Combo1.Text) * Val(Textt3.Text) / Val(Combo2.Text) / Val(Text1.Text) / 1000
    '计算纸重
    Text10.Text = Val(Textt3.Text) + Val(Combo3.Text) + Val(Combo4.Text)
    '计算计量毛重
    Text13.Text = zhizhong + Val(Combo3.Text) + Val(Combo4.Text)
    '计算计量皮重
    Text15.Text = Val(Textt3.Text) - zhizhong
    '计算计量净重
    Text16.Text = Val(Text15.Text) - Val(Text11.Text)
    '计算交货重量
    Text14.Text = Val(Combo3.Text) + Val(Combo4.Text)
    '计算包装扣重
    'MsgBox "纸重: " & zhizhong
    'End If
    Exit Sub
    ErrHandler:
    End Sub
      

  7.   

    这段代码运行,看停留在哪个位置Private Sub Command1_Click()
        '实现计算功能
        Dim zhizhong As Integer
        '定义纸重
        
        'On Error GoTo ErrHandler    If Trim(Text1.Text) = "" Then
            Text1.Text = InputBox("请输入厚度值,", "错误", "")  '厚度值为空的时候
        End If
        zhizhong = Val(Combo1.Text) * Val(Textt3.Text) / Val(Combo2.Text) / Val(Text1.Text) / 1000
        '计算纸重
        Text10.Text = Val(Textt3.Text) + Val(Combo3.Text) + Val(Combo4.Text)
        '计算计量毛重
        Text13.Text = zhizhong + Val(Combo3.Text) + Val(Combo4.Text)
        '计算计量皮重
        Text15.Text = Val(Textt3.Text) - zhizhong
        '计算计量净重
        Text16.Text = Val(Text15.Text) - Val(Text11.Text)
        '计算交货重量
        Text14.Text = Val(Combo3.Text) + Val(Combo4.Text)
        '计算包装扣重
    '    MsgBox "纸重: " & zhizhong
    '    Exit Sub
    'ErrHandler:End Sub
      

  8.   

    到这行出的错
     zhizhong = Val(Combo1.Text) * Val(Textt3.Text) / Val(Combo2.Text) / Val(Text1.Text) / 1000
      

  9.   

    Private Sub Form_Load()
    '''''   '输入法
    '''''    Dim astr As String * 256
    '''''    Dim bstr As String
    '''''    Dim x, hMem, i As Long
    '''''
    '''''    x = GetKeyboardLayoutList(32, la(1))
    '''''    ComboInput.Clear
    '''''    If x Then
    '''''        For i = 1 To x
    '''''            ImmGetDescription la(i), astr, 256
    '''''            If InStr(astr, Chr(0)) = 1 Then
    '''''                bstr = ""
    '''''            Else
    '''''                bstr = Left$(astr, InStr(astr, Chr(0)))
    '''''            End If
    '''''
    '''''            If Trim(bstr) = "" Then
    '''''                ComboInput.AddItem "英语(美国)"
    '''''            Else
    '''''                ComboInput.AddItem bstr
    '''''            End If
    '''''        Next i
    '''''    End If
    Label31.Caption = "使用说明:" & vbCrLf & "按照实际参数,先打开串口,再进行数据读取。"
        
    ' '430表
    'dataArray1() = Array(15, 30, 45, 61, 76, 91, 106, 121, 136, 152, 167, 182, 197, 212, 227, 242, 258, 273, 288, 303, 318, 333, 348, 364, 375, 394, 409)
    'dataArray2() = Array(11, 23, 34, 45, 57, 68, 80, 91, 102, 114, 125, 136, 148, 159, 170, 182, 193, 205, 216, 227, 239, 250, 261, 273, 284, 295, 307)
    'dataArray3() = Array(9, 18, 27, 36, 45, 55, 64, 73, 82, 91, 100, 109, 118, 127, 136, 145, 155, 164, 173, 182, 191, 200, 209, 218, 227, 236, 245)
    'dataArray4() = Array(8, 15, 23, 30, 38, 45, 53, 61, 68, 76, 83, 91, 98, 106, 114, 121, 129, 136, 144, 152, 159, 167, 174, 182, 189, 197, 205)
    'dataArray5() = Array(6, 13, 19, 26, 32, 39, 45, 52, 58, 65, 71, 78, 84, 91, 97, 104, 110, 117, 123, 130, 136, 143, 149, 156, 162, 169, 175)
    'dataArray6() = Array(6, 11, 17, 23, 28, 34, 40, 45, 51, 57, 63, 68, 74, 80, 85, 91, 97, 102, 108, 114, 119, 125, 131, 136, 142, 148, 153)
    'dataArray7() = Array(5, 10, 15, 20, 25, 30, 35, 40, 45, 51, 56, 61, 66, 71, 76, 81, 86, 91, 96, 101, 106, 111, 116, 121, 126, 131, 136)
    'dataArray8() = Array(5, 9, 14, 18, 23, 27, 32, 36, 41, 45, 50, 55, 59, 64, 68, 73, 77, 82, 86, 91, 95, 100, 105, 109, 114, 118, 123)
    'dataArray9() = Array(4, 8, 11, 15, 19, 23, 27, 30, 34, 38, 42, 45, 49, 53, 57, 61, 64, 68, 72, 76, 80, 83, 87, 91, 95, 98, 102)
    'dataArray10() = Array(3, 6, 9, 12, 15, 18, 21, 24, 27, 30, 33, 36, 39, 42, 45, 48, 52, 55, 58, 61, 64, 67, 70, 73, 76, 79, 82)
    'dataArray11() = Array(2, 5, 7, 9, 11, 14, 16, 18, 20, 23, 25, 27, 30, 32, 34, 36, 39, 41, 43, 45, 48, 50, 52, 55, 57, 59, 61)
    'dataArray12() = Array(2, 4, 5, 7, 9, 11, 13, 15, 16, 18, 20, 22, 24, 25, 27, 29, 31, 33, 35, 36, 38, 40, 42, 44, 45, 47, 49)
    'dataArray13() = Array(2, 3, 5, 6, 8, 9, 11, 12, 14, 15, 17, 18, 20, 21, 23, 24, 26, 27, 29, 30, 32, 33, 35, 36, 38, 39, 41)
    '
    '
    ''304表
    'dataArray21() = Array(15, 29, 44, 59, 74, 88, 103, 118, 132, 147, 162, 177, 191, 206, 221, 235, 250, 265, 280, 294, 309, 324, 338, 353, 368, 383, 397)
    'dataArray22() = Array(11, 22, 33, 44, 55, 66, 77, 88, 99, 110, 121, 132, 143, 154, 166, 177, 188, 199, 210, 221, 232, 243, 254, 265, 276, 287, 298)
    'dataArray23() = Array(9, 18, 26, 35, 44, 53, 62, 71, 79, 88, 97, 106, 115, 124, 132, 141, 150, 159, 168, 177, 185, 194, 203, 212, 221, 230, 238)
    'dataArray24() = Array(7, 15, 22, 29, 38, 44, 51, 59, 66, 74, 81, 88, 96, 103, 110, 118, 125, 132, 140, 147, 154, 162, 169, 177, 184, 191, 199)
    'dataArray25() = Array(6, 13, 19, 25, 32, 38, 44, 50, 57, 63, 69, 76, 82, 88, 95, 101, 107, 113, 120, 126, 132, 139, 145, 151, 158, 164, 170)
    'dataArray26() = Array(6, 11, 17, 22, 28, 33, 39, 44, 50, 55, 61, 66, 72, 77, 83, 88, 94, 95, 105, 110, 116, 121, 127, 132, 138, 143, 149)
    'dataArray27() = Array(5, 10, 15, 20, 25, 29, 34, 39, 44, 49, 54, 59, 64, 69, 74, 78, 83, 88, 93, 98, 103, 108, 113, 118, 123, 128, 132)
    'dataArray28() = Array(4, 9, 13, 18, 22, 26, 31, 35, 40, 44, 49, 53, 57, 62, 66, 71, 75, 79, 84, 88, 93, 97, 102, 106, 110, 115, 119)
    'dataArray29() = Array(4, 7, 11, 15, 18, 22, 26, 29, 33, 37, 40, 44, 48, 51, 55, 59, 63, 66, 70, 74, 77, 81, 85, 88, 92, 96, 99)
    'dataArray210() = Array(3, 6, 9, 12, 15, 18, 21, 24, 26, 29, 32, 35, 38, 41, 44, 47, 50, 53, 56, 59, 62, 65, 68, 71, 74, 77, 79)
    'dataArray211() = Array(2, 4, 7, 9, 11, 13, 15, 18, 20, 22, 24, 26, 29, 31, 33, 35, 38, 40, 42, 44, 46, 49, 51, 53, 55, 57, 60)
    'dataArray212() = Array(2, 4, 5, 7, 9, 11, 12, 14, 16, 18, 19, 21, 23, 25, 26, 28, 30, 32, 34, 35, 37, 39, 41, 42, 44, 46, 48)
    'dataArray213() = Array(1, 3, 4, 6, 7, 9, 10, 12, 13, 15, 16, 18, 19, 21, 22, 24, 25, 26, 28, 29, 31, 32, 34, 35, 37, 38, 40)
    '
    '
    '
        'SetWindowPos Me.hwnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE Or SWP_NOSIZE  为什么要加这个?
    ' 将窗口设为总在最前strDate = CStr(Date)
    date1 = InStr(1, strDate, "-", 1)
    Labeldate(0).Caption = Left(strDate, date1 - 1)
    date2 = InStr(date1, strDate, "-", 1)
    Labeldate(1).Caption = Mid(strDate, date1 + 1, 2)
    If InStr(1, Right(strDate, 2), "-", vbTextCompare) Then
    Labeldate(2).Caption = Right(strDate, 1)
    Else
    Labeldate(2).Caption = Right(strDate, 2)
    End IfFrame2.Top = 0.4 * (Screen.Height - Frame2.Height) / 2
    Frame2.Left = (Screen.Width - Frame2.Width) / 2
    'Commandclear.Top = Frame2.Top + Frame2.Height + 150
    'Commandclear.Left = Frame2.Left + Frame2.Width - Commandclear.Width
    'CommandReturn.Top = Commandclear.Top + Commandclear.Height + 150
    'CommandReturn.Left = Commandclear.Left
    Frame1.Top = Frame2.Top + Frame2.Height + 150
    Frame1.Left = Frame2.Left ' + Frame2.Width - CommandReturn.Width - Frame1.Width - 350
    End Sub