2010-12-09 32 views
0

与没有帮助多小时非常基本的,并且很讨厌,我已经寻找解决方案...Excel的VBA时间格式与组合框小数

问题:我从命名的区域填充组合框,范围列表时间(格式为时间:-),组合似乎罚款,下拉显示我的时间,因为他们是应该的,但选择当时间被格式化为一个十进制数...

alt text

下面是代码(撕下来最低限度):

Private Sub UserForm_Initialize() 
    ComboBoxTime.RowSource = "Help!Time" 
End Sub 

“帮助”是包含命名的区域“时代”工作表的名称我都试过,没有运气的格式不同的方式...

ComboBoxTime = Format(ComboBoxTime, "hhmm") 

这里是链接品尝。 http://www.equstom.fi/dateproblem.html

(是的,我需要从命名范围来填充,而不是为每个循环中,我将设置.value的使用代码,整个文件实际上是相当复杂的,但我只包含这个问题的一部分...)

+0

您的链接http://www.equstom.fi/dateproblem.html中断 – 2010-12-09 19:43:44

+0

对不起,这里是http://www.equstom.fi/dateproblem.xlsm – 2010-12-10 05:50:52

回答

0

该问题被命名为范围我正在使用,当值被格式化为时间,它将无法正常工作。如果价值是文本,我就能使用它!问题与excel在芬兰语和VBA中的英语有关... 我在范围旁边添加了第二列,它将文本值复制到这个以时间格式化的第二范围。快速和肮脏! (感谢您的输入Belisarius)

2

尝试是这样的:

Private Sub ComboBox1_Change() 
With ComboBox1 
    .Value = Format(.Value, "hh:mm:ss AMPM") 

End With 
End Sub 

HTH!

编辑 这是我离开你的组合时看到的。时间显示正常。

alt text

编辑2

发现错误 “无效属性”:

必须在组合框中设置 “需要选用匹配” 为FALSE。如果你认为它应该是“真”,你将不得不手动验证...