首页 > 解决方案 > 调用子过程时出现类型不匹配错误

问题描述

我通过TextBox从USERFORM“签入时间(hh:mm格式)”和“签出时间(格式)”获取两个输入hh:mm,并尝试在第三个文本框(hh:mm格式)中立即输出,显示签入和签出之间的差异。

为了实现这一点,我正在使用Call Sub procedure方法。

但是我收到错误

“运行时 13:类型不匹配”。

我是 VBA 的新手,自从 2 周以来我就一直坚持这一点。请帮忙。

我尝试更改 DATA 类型,但没有得到任何积极的结果。

Private Sub CHKIN_Change() 'Calling GetTime 
    Call GetTime
End Sub


Private Sub CHKOUT_Change() 'Calling GetTime 
   Call GetTime
End Sub


Private Sub TOTALHRS_Change() 'Calling GetTime 
   Call GetTime
End Sub


'below Calculating difference b/t Checkin & Checkout, displaying in "TOTALHRS" textbox

Sub GetTime()       
    Dim Time1, Time2, TotalTime  As Date
    Time1 = CHKIN.Text
    Time2 = CHKOUT.Text
    TotalTime = DateDiff("s", Time1, Time2)
    TotalTime = Totalhour / 86400
    TOTALHRS.Text = Format(Totalhour, "hh:mm")
End Sub


'Using below code to convert checkin and checkout input in hh:mm format.

Private Sub CHKIN_AfterUpdate()
    Dim tDate As Date
    Dim tString As String
    With CHKIN
        'Check if user put in a colon or not
        If InStr(1, .Value, ":", vbTextCompare) = 0 Then
            'If not, make string 4 digits and insert colon
            tString = Format(.Value, "0000")
            tDate = TimeSerial(Left(tString, 2), Right(tString, 2), 0)

            CHKIN.Value = Format(tDate, "HH:MM")
        Else
            'Otherwise, take value as given
            .Value = Format(.Value, "hh:mm")
        End If
    End With
    Exit Sub
End Sub

想要的结果:checkout- checkin=hh:mm
示例:23:20- 9:35=13:45

标签: excelvba

解决方案


推荐阅读