vba - 在组合框下拉列表中格式化日期

标签 vba date combobox

我创建了一个简单的用户窗体,其中包含一个组合框,其中填充了一系列日期 (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/

相关文章:

vba - 通过 VBA 将音频剪辑添加到跨多张幻灯片的 PowerPoint 演示文稿

excel - 将 Excel 工作表复制到 Word

ms-access - 如何将像 mmm-yy 这样的文本日期格式转换为 MS Access 查询中的日期?

javascript - 如何切换到不同的日期格式?

Java 从另一个类获取选定的组合框

c# - 当 DataSource 值更改时,WinForms ComboBox 中的项目不更新

excel - VBA中的多重替换

vba - Excel VBA : Best way to work with data of CSV file

java - Hibernate HQL 和日期

c# - ComboBox C# 中的默认值 DataSource