我创建了一个简单的用户表单,其中的组合框填充了一系列日期(rngWeekList
),但是我很头疼,试图让下拉框中的列表出现在“dd-mmm-yy”中格式。这是我的代码:
Private Sub UserForm_Initialize()
' Populate the list with the date range
ComboBox1.List = Worksheets("Cover").Range("rngWeekList").Value
' Set the defulat selection (based off rngWeekIndex)
ComboBox1.ListIndex = Worksheets("Cover").Range("rngWeekIndex").Value - 1
' Format
ComboBox1 = Format(ComboBox1, "dd-mmm-yy")
End Sub
Private Sub ComboBox1_Change()
' Format
ComboBox1 = Format(ComboBox1, "dd-mmm-yy")
End Sub
这设法正确地格式化组合框中的所选项目(例如“02-Jul-14”),但是当我打开下拉列表时,显示的所有列表条目都以默认的“m / d / yyyy”格式化。有没有办法更改列表条目的格式?对于习惯于在月份前一天看到的用户来说,这会让人感到困惑。
在此先感谢您的帮助,我们非常感谢。
版
答案 0 :(得分:2)
我设法通过循环使用组合框中的每个项目并对其进行格式化来修复它(如果有更优雅的方法,请随时纠正我!)
Private Sub UserForm_Initialize()
Dim i As Integer
' Populate the list with the date range
ComboBox1.List = Worksheets("Cover").Range("rngWeekList").Value
'Format all items
For i = 0 To ComboBox1.ListCount - 1
ComboBox1.List(i) = Format(DateValue(ComboBox1.List(i)), "dd-mmm-yy")
Next i
' Set the default selection (based off rngWeekIndex)
ComboBox1.ListIndex = Worksheets("Cover").Range("rngWeekIndex").Value - 1
End Sub
Private Sub ComboBox1_Change()
' Format the selection
ComboBox1 = Format(ComboBox1, "dd-mmm-yy")
End Sub
很抱歉发布,但我真的以为我被卡住了。
再次感谢,
版