Excel 2016组合框日期显示与数字
与43466(一个数字)相比,在组合框中显示实际日期似乎是一项过于简单的任务。每个人似乎都在使用的代码如下 .案文: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
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