这似乎是一个简单的任务,可以在组合框中显示实际日期,而不是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。任何人都不断给我以下错误:
编译错误: 参数数量错误或属性分配无效
任何关于我必须失踪的想法,在最平凡和看似简单的任务中让大脑崩溃。
答案 0 :(得分:0)
问题方法
问题似乎是当你试图改变组合框中的值时,是否有值开始?如果为空,则采用日期的默认版本。
解决方法
尝试在进入Change事件之前设置该值。
示例代码和演示
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
进一步评论
一旦你改变它,你会看到它再次进入"变化"事件,您可以在进入周期后立即关闭事件,然后再次打开事件,如果它导致您的电脑出现不稳定行为 - 有时会这样做。