Excel 2016 ComboBox日期显示与数字

时间:2017-04-14 19:00:55

标签: excel-vba vba excel

这似乎是一个简单的任务,可以在组合框中显示实际日期,而不是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。任何人都不断给我以下错误:

编译错误: 参数数量错误或属性分配无效

任何关于我必须失踪的想法,在最平凡和看似简单的任务中让大脑崩溃。

1 个答案:

答案 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

enter image description here


进一步评论

一旦你改变它,你会看到它再次进入"变化"事件,您可以在进入周期后立即关闭事件,然后再次打开事件,如果它导致您的电脑出现不稳定行为 - 有时会这样做。