将时间传递给用户表单上的DTPicker控件

时间:2017-03-08 07:38:36

标签: excel-vba userform vba excel

我有一个带有4个日期选择器控件的用户表单,第一个选择日期,另外3个选择时间。

它们都正常工作,并且在单击“提交”按钮时将正确的值传递给工作表。

但是,我还有一些代码,使用户能够在数据集中选择一行,然后单击“编辑”按钮将使用所选行中的数据加载与上面相同的用户表单。问题在于3个时间选择器。

我的“UserFormLoad”代码循环遍历用户表单上的所有控件,如果控件具有Tag,则该Tag值确定所选行的列索引,该列具有所需的控件值。

For Each ctl In .Controls
    If ctl.Tag <> "" Then
        Select Case ctl.Tag
            Case "9", "10", "11"
                dt = TimeSerial(Hour(CDate(RawData.ListObjects(1).ListRows(i).Range.Columns(CInt(ctl.Tag)))), _
                                Minute(CDate(RawData.ListObjects(1).ListRows(i).Range.Columns(CInt(ctl.Tag)))), 0)
                Debug.Print dt
                ctl = dt
            Case Else
                ctl = RawData.ListObjects(1).ListRows(i).Range.Columns(CInt(ctl.Tag))
        End Select
    End If
Next

每个时间选择器的默认值是“3/2/2017 6:00:00 AM”

我已尝试将DateSerial添加到Dt变量,但是当代码尝试设置dpChkIn控件的值时,该sill会导致严重错误(对于其他2个控件也是如此)。只有一个关键消息框没有错误消息,并且代码退出。

非常感谢任何帮助。

0 个答案:

没有答案