Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
带组合框的十进制Excel VBA时间格式_Excel_Vba_Time_Combobox_Format - Fatal编程技术网

带组合框的十进制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