我创建了一个简单的用户窗体,其中包含一个组合框,其中填充了一系列日期 (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”格式。有没有办法更改列表条目的格式?对于习惯于看到月前一天的用户来说,这会造成混淆。
在此先感谢您的帮助,非常感谢。
埃德
最佳答案
我设法通过循环遍历 comboboax 中的每个项目并对其进行格式化来修复它(如果有更优雅的方法,请随时纠正我!)
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
抱歉发帖,但我真的以为我被卡住了。
再次感谢,
埃德
关于vba - 在组合框下拉列表中格式化日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21443409/