格式化以在combobox和链接的单元格输出中显示毫秒值的时间

我正在制作一个工作表,允许用户在预先logging的数据的两个时间值之间过滤数据。 该数据的时间格式下降到十分之一秒(HH:MM:SS.0),而combobox列表将显示所有这些值,当select一个时,它将被截断为第二个值。 我已经做了一些查找,并find了很多有关CURRENT时间的毫秒数的调用时间,但不是只是格式化显示。 这是我的combobox代码当前如何读取:

Private Sub ComboBox21_Change() With ComboBox21 .Value = Format(.Value, "hh:mm:ss") End With End Sub 

我已经尝试了几个不同的选项,包括在最后添加“.0”,但没有运气。 此外,我已经注意到,在进行select时链接单元格中的值似乎反映了select本身的内容。 我的印象是,链接的单元格会显示select的相对数量与可用select的总数量,这是我真正需要的。 有谁知道如何解决这一问题?

Format函数似乎不能处理毫秒。

我会使用Application.Text函数。 但是这个函数需要第一个参数是数字。 所以我们必须testing一下:

 Private Sub ComboBox21_Change() With ComboBox21 If IsNumeric(.Value) Then .Value = Application.Text(CDbl(.Value), "hh:mm:ss.000") End If End With End Sub 

编辑:

由于我们正在改变ComboBox_Change事件中的.Value ,所以它总是运行两次。 更好的是:

 Dim stopCBEvents As Boolean Private Sub ComboBox21_Change() If Not stopCBEvents Then With ComboBox21 'MsgBox .Value If IsNumeric(.Value) Then stopCBEvents = True .Value = Application.Text(--.Value, "hh:mm:ss.000") stopCBEvents = False End If End With End If End Sub 

你可以做这样的事情:

 .Value = Format(.Value, "hh:mm:ss") & Right(Format(.Value * 24 * 60 * 60, "0.0"), 2) 

将零的数量和2更改为所需的长度。 这将是一个string,你将需要转换回数字。 你可以通过参考链接单元在Excel中做到这一点:

 =--A1