Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/27.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 在UserForm的组合框列表中使用自定义日期格式_Excel_Vba - Fatal编程技术网

Excel 在UserForm的组合框列表中使用自定义日期格式

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 ---很抱歉,只有

在我的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

---很抱歉,只有德语屏幕截图可用---

这一切都很好


现在,我想使用
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。