Excel 在UserForm的组合框列表中使用自定义日期格式
在我的Excel电子表格中,我有以下数据:Excel 在UserForm的组合框列表中使用自定义日期格式,excel,vba,Excel,Vba,在我的Excel电子表格中,我有以下数据: A B 1 2020-01-06 2 2020-01-07 3 2020-01-08 4 2020-01-09 5 2020-01-10 6 2020-01-11 7 2020-01-12 8 我使用的是德国Excel,因此正常的日期格式是06.01.2020,01.07.2020等等 要将日期格式切换到上述样式,请使用以下屏幕截图中的格式jjj-MM-TT ---很抱歉,只有
A B
1 2020-01-06
2 2020-01-07
3 2020-01-08
4 2020-01-09
5 2020-01-10
6 2020-01-11
7 2020-01-12
8
我使用的是德国Excel,因此正常的日期格式是06.01.2020
,01.07.2020
等等要将日期格式切换到上述样式,请使用以下屏幕截图中的格式
jjj-MM-TT
---很抱歉,只有德语屏幕截图可用---
这一切都很好
现在,我想使用
UserForm2
中ComboBox1
中range
A1:A7
中的数据因此,我选择了VBA:
Sub UserForm_Activate()
ComboBox1.List = Sheet1.Range("A1:A7").Value
End Sub
此VBA将列表插入到组合框1中,但不使用自定义日期它切换回原始日期格式,如下所示:
我需要在VBA中更改什么,以便它以与
范围中相同的样式显示日期A1:A7
Private Sub UserForm_Initialize()
Dim Arr As Variant
Dim i As Integer
Arr = Sheet1.Range("A1:A7").Value
For i = 1 To UBound(Arr)
' this is English syntax and might be different in German
Arr(i, 1) = Format(Arr(i, 1), "yyyy-mm-dd")
Next i
ComboBox1.List = Arr
End Sub
创建表单时触发Initialize
事件,稍晚激活时触发Activate
事件。使用激活
事件,您可以隐藏
表单,更改数据,然后使用不同的列表再次显示
。除非这是你的计划,否则它更像是“无法解释的错误”的来源。因此,我建议使用Initialize
事件。谢谢您的回答,但当我运行它时,日期列表如下所示:jjj-01-TT、jjj-01-TT、jjj-01-TT等等。请尝试使用英语“yyyy-mm-dd”。如果这不起作用,请查找格式
函数的德语术语。请在这里告诉我,以便我可以相应地修改我的帖子。仅供参考-VBA的format()
函数的显式格式符号始终保留为英语-c.f。