格式化以在组合框和链接的单元格输出中显示毫秒值

时间:2016-01-22 14:33:07

标签: excel vba excel-vba combobox

我正在开发一个工作表,允许用户在预先录制的数据的两个时间值之间过滤数据。此数据的时间格式下降到十分之一秒(HH:MM:SS.0),而组合框列表将显示所有这些值,当选择一个时,它将被截断为仅第二个值。我已经做了一些观察,并发现了很多关于在CURRENT时间内调用毫秒时间的信息,但不仅仅是格式化显示器。以下是我的组合框代码目前的读取方式:

Private Sub ComboBox21_Change()

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

End Sub

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

2 个答案:

答案 0 :(得分:3)

Format函数似乎无法处理毫秒数。

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

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

修改

由于我们要更改此.Value ComboBox事件中_Change的{​​{1}},因此这将始终运行两次。更好的是:

ComboBox

答案 1 :(得分:1)

您可以这样做:

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

将零的数量和2更改为所需的长度。这将是您需要转换回数字的字符串。您可以通过引用链接的单元格在excel中执行此操作:

=--A1