VBA - 从日期列表中选择用户输入的年份

时间:2015-08-07 16:22:14

标签: vba excel-vba excel

我目前有一张工作表,其日期按升序排列在不同的行中,如下所示:

10/03/1995
29/04/1995
25/09/1995
11/07/1997
04/10/1997
02/04/1998
13/07/1998
23/08/1998
11/10/1998
05/06/1999
07/06/1999
10/06/1999
06/05/2000
03/07/2000
15/05/2001
09/07/2001
03/08/2002
11/08/2002
11/09/2002
12/10/2002
16/11/2002
15/12/2002
22/01/2003
17/02/2003
14/03/2003
27/04/2003
28/05/2003
14/07/2003
15/08/2003
10/11/2003
05/12/2003

我打算实现一个输入框,用户可以在其中输入开始年份和结束年份。如果用户输入年份范围,例如1995 - 2000,我怎样才能选择1995-2000的所有日期而不必修改数据(例如使用分隔符“/”)?

2 个答案:

答案 0 :(得分:0)

你可以使用Right()作为Tripp指出。

Dim ws As Excel.Worksheet
Dim lRow As Long
Dim i as long
Dim j as long
Dim r as Range

Set ws = ActiveWorkbook.Sheets("Sheet1")
ws.Activate

    lRow = 1

    'Loop through and record what is in the first column
    Do While lRow <= ws.UsedRange.Rows.count

        if right(ws.Range("A" & lRow).Value, 4) >= lowYear and right(ws.Range("A" & lRow).Value, 4) <= highYear then

            if i = 0 then
                i = lRow
                j = lROw
            else
                j = lRow
            end if

        End if

        lRow = lRow + 1
        ws.Range("A" & lRow).Activate
    Loop

    Dim str As String
    str = "A" & i & ":A" & j
    Set r = Range(str)
    r.Select

答案 1 :(得分:0)

以下是使用*进行操作的方法,这样您就不必遍历所有行。

它会过滤您范围内的日期,选择它们,然后删除过滤器。

*