带组合框的十进制Excel VBA时间格式
非常基本,非常烦人,我已经在没有帮助的情况下搜索了很多小时的解决方案 问题:我正在从指定的范围填充组合框,范围是时间列表(格式为时间:-),组合似乎很好,下拉列表显示了我的时间,但当选定的时间格式为十进制数时 以下是代码(最低限度): “帮助”是包含命名范围“时间”的工作表的名称。我尝试了不同的格式设置方法,但没有成功带组合框的十进制Excel VBA时间格式,excel,vba,time,combobox,format,Excel,Vba,Time,Combobox,Format,非常基本,非常烦人,我已经在没有帮助的情况下搜索了很多小时的解决方案 问题:我正在从指定的范围填充组合框,范围是时间列表(格式为时间:-),组合似乎很好,下拉列表显示了我的时间,但当选定的时间格式为十进制数时 以下是代码(最低限度): “帮助”是包含命名范围“时间”的工作表的名称。我尝试了不同的格式设置方法,但没有成功 ComboBoxTime = Format(ComboBoxTime, "hhmm") 这里是到示例的链接 (是的,我需要从命名范围填充,而不是为每个循环,我将设置。值与代码
ComboBoxTime = Format(ComboBoxTime, "hhmm")
这里是到示例的链接
(是的,我需要从命名范围填充,而不是为每个循环,我将设置。值与代码一起,整个文档实际上相当复杂,但我只包括问题部分…)尝试以下方法:
Private Sub ComboBox1_Change()
With ComboBox1
.Value = Format(.Value, "hh:mm:ss AMPM")
End With
End Sub
嗯
编辑
这是我离开你的组合时看到的。时间显示正常
编辑2
发现错误“无效属性”:
必须在组合框中将“匹配要求”设置为FALSE。如果你认为它应该是“真的”,你必须用手验证…< p>这个问题被命名为我使用的范围,当值被格式化为时间时它将不起作用。如果值是文本,我就能让它工作!这个问题与芬兰语的excel和英语的VBA有关。。。
我在range旁边添加了第二列,该列将文本值复制到以时间格式命名的第二个范围。又快又脏!(感谢您的输入Belisarius)您的链接是Brokersory,在这里它不起作用。。。并且-值应该用UserForm_初始化而不是Change格式化…@Mika在我的机器中工作。。。它必须用变化来形成。Initialize仅格式化列表,而不是上层box@Mika似乎您的WS在库引用方面有一些问题。标准VBA格式函数在WS中不起作用@米卡发现了问题。至少在我的机器中,停用Outlook DLL的引用可以恢复正常,并且上面的代码运行正常。:-)很抱歉,链接是.html,同样应该是.xlsm。此新工作簿中没有对Outlook库的任何引用,但问题仍然存在(感谢您花时间解决此问题!)
Private Sub ComboBox1_Change()
With ComboBox1
.Value = Format(.Value, "hh:mm:ss AMPM")
End With
End Sub