06:00在userform中显示为00:25

时间:2015-06-04 13:29:29

标签: excel vba excel-vba

我尝试将电子表格中的时间信息检索到用户表单,但我遇到了06:00:00显示为00:25:00的问题。电子表格用于公司Flexi时间的时间计算,我们尝试使用用户表单来简化和限制用户界面。它也会在12:00:00到00:05:00之间变化。有没有办法让它显示正确的时间?

这是我们目前用于显示信息的代码。

Private Sub TimeCheck_Change()
    If Left(TimeCheck.Text, 1) = "-" Then
    TimeCheck.ForeColor = RGB(255, 0, 0)
    End If
    TimeCheck.Text = Format(TimeCheck.Text, "hh:Nn;(hh:Nn)")

End Sub

这会将文本框绑定到工作表:

Private Sub cmdsearch_Click()


    row_number = 0
    Do
    DoEvents
    row_number = row_number + 1
    Status = Sheets("Flex Total").Range("A" & row_number)
    If Status = EmployeeCheck.Text Then
    TimeowedCheck.Value = Sheets("Flex Total").Range("B" & row_number)
    timetakenCheck.Value = Sheets("Flex Total").Range("C" & row_number)
    TimeCheck.Value = Sheets("Flex Total").Range("D" & row_number)
    End If
    Loop Until Status = ""

End Sub

1 个答案:

答案 0 :(得分:0)

在您的代码中,此行指定电子表格中的值:

TimeCheck.Value = Sheets("Flex Total").Range("D" & row_number)

相当于:

TimeCheck.Value = Sheets("Flex Total").Range("D" & row_number).Value

单元格是Range对象,其默认属性.Value。除非您指定其他属性,否则将返回此属性。在您的情况下,为0.25,更改NumberFormat属性将无济于事。

相反,请尝试:

TimeCheck.Value = Sheets("Flex Total").Range("D" & row_number).Text

这将使用单元格的.Text属性而不是.Value,而.Text属性会受到您所做的NumberFormat更改的影响,因此我认为应该解决它。