2014-04-10 20 views
1

每次啓動文件並單擊userform的宏時,組合框應該有來自今天和未來日期的日期列表,它不能有過去的日期。組合框中的今天日期和將來日期下拉列表

這是我有的代碼,它只輸入組合框中的日期並格式化列表的值。但我不知道如何列出未來的日期。

Public Sub UserForm_initialize() 
    ComboBox3.Value = Format(Date, "dd/mm/yyyy") 
    ComboBox3.Value = Format(ComboBox3.Value, "dd/mm/yyyy") 
End Sub 

回答

4

而不是Date使用Now()。 「日期」是數據類型的半保留關鍵字。你也許能夠將它作爲一個變量來使用,但是這樣做會使模糊/混淆。

我會這樣做的方式是在循環中使用列表框.AddItem的方法,使用DateAdd函數(超級方便,如果您使用日期很多!)的某些日期算術。

Public Sub UserForm_initialize() 
    Dim i as Integer 
    Dim myDate as Date 
    myDate = Now() 
    For i = 0 to 10 'Add the next 10 days, for example 
     ComboBox3.AddItem Format(DateAdd("d", i, myDate), "dd/mm/yyyy") 
    Next 
    ComboBox3.ListIndex = 0 
End Sub 
+0

謝謝。它工作得很好。 – Hush

+0

+1 succint的代碼。 – brettdj