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
Excel 2016组合框日期显示与数字_Excel_Vba - Fatal编程技术网

Excel 2016组合框日期显示与数字

Excel 2016组合框日期显示与数字,excel,vba,Excel,Vba,与43466(一个数字)相比,在组合框中显示实际日期似乎是一项过于简单的任务。每个人似乎都在使用的代码如下 .案文: Private Sub ComboBox20_Change() ComboBox20.Text = format(ComboBox20.Text, "dd/mm/yyyy") End Sub 或者。价值观 Private Sub ComboBox20_Change() ComboBox20.Value = format(ComboB

与43466(一个数字)相比,在组合框中显示实际日期似乎是一项过于简单的任务。每个人似乎都在使用的代码如下

.案文:

     Private Sub ComboBox20_Change()
     ComboBox20.Text = format(ComboBox20.Text, "dd/mm/yyyy")
     End Sub
或者。价值观

    Private Sub ComboBox20_Change()
    ComboBox20.Value = format(ComboBox20.Value, "dd/mm/yyyy")
    End Sub
我甚至尝试了.text和.value。其中一个总是给我以下错误:

编译错误: 参数数目错误或属性赋值无效


任何关于我一定错过了什么的想法,在最平凡、看似简单的任务上大脑崩溃。

问题解决方法
问题似乎是当您试图更改组合框中的值时,是否有一个值作为开始?如果为空,则采用日期的默认版本。
解决方案方法

尝试在值进入更改事件之前设置该值。
示例代码和演示


进一步评论


正如您所看到的,一旦更改,它会再次进入“更改”事件,您可以在进入周期后立即关闭事件,然后如果它在您的电脑上造成不稳定的行为,则会再次打开事件-有时确实如此。

请注意,
格式
的首字母没有大写。如果实际代码中是这种情况,则通过工具>引用检查缺少的引用。缺少引用往往会导致内置函数的行为strangely@barrowc有时,如果你从一开始就在低资本水平上使用它,它确实与实际执行无关,检查引用是一个很好的建议,但遗憾的是,事实并非如此,因为Excel VBA引用本身附带了格式。@Sgdva请参阅,以了解内置函数被缺少的引用破坏的情况。不过,我本以为会出现特定的“缺少项目或库”错误。请注意,这是一个编译错误,因此运行时效果(如combobox的特定值)不应该是一个阶乘。我已经在表单中或实际工作表中尝试过这一点,但这两种方法都不起作用。我不理解为什么在这个问题上似乎有解决方案,因为我搜索的每一个地方似乎都没有具体和合理的结果。谢谢你的所有意见。我也没有遗漏任何参考资料。
Private Sub ComboBox1_Change()
    ComboBox1.Value = Format(ComboBox1.Value, "dd/mm/yyyy")
End Sub
Private Sub UserForm_Activate()
Dim CounterDate As Long
Dim TxtDate As String
    For CounterDate = 1 To 2
    TxtDate = DateAdd("d", CounterDate, Now)
    ComboBox1.AddItem (TxtDate)
    ComboBox1.Value = TxtDate
    Next CounterDate
End Sub