簡體   English   中英

在vba中輸入框日期范圍?

[英]Input box date range in vba?

我有一個excel文件,在第一列(A)我有一些這樣的日期:

17/10/2013
18/10/2013
19/10/2013
20/10/2013
21/10/2013
22/10/2013

其他列包含一些數據。 我需要創建一個輸入框,將日期范圍內的所有內容都包含在內。 我的意思是; 我點擊按鈕,它會顯示一個彈出窗口:

insert start date: 17/10/2013 (i can decide the date)
insert end date: 20/10/2013 (i can decide the date)

然后我可以放一個宏我已經完成了。 所以我的宏只讀取該范圍內的數據。 可能嗎?

您可以在使用表單中添加日期時間選擇器,並測試您的范圍的輸入,如下所示:

打開VBA和您想要輸入的表單。

在工具箱中右鍵單擊並選擇其他控件

在此輸入圖像描述

然后在列表框中選擇Microsoft日期和時間選擇器控件:

在此輸入圖像描述

將控件添加到您的表單:

在此輸入圖像描述

然后在DTPicker1_Change()事件下設置如下代碼:

在此輸入圖像描述

Private Sub DTPicker1_Change()
If DTPicker1.Value < DateSerial(2013, 10, 20) And DTPicker1.Value > DateSerial(2013, 10, 15) Then
    Debug.Print "Put Your Code Here"
End If
End Sub

將日期更改為您自己的日期並添加您的代碼。

注意:此控件中有大量設置,從顏色到顯示類型,復選框,下拉樣式,默認值最小和最大日期。 此外,還可以根據區域設置應用自定義日期格式。

沒有特定的日期類型,因此您必須進行一些錯誤檢查。 以下是如何從用戶獲取日期的一個想法:

Dim dateString As String, TheDate As Date
Dim valid As Boolean: valid = True

Do
  dateString = Application.InputBox("Enter A Date: ")

  If IsDate(dateString) Then
    TheDate = DateValue(dateString)
    valid = True
  Else
    MsgBox "Invalid date"
    valid = False
  End If
Loop Until valid = True

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM