Date EXCEL VBA-查找日期在两位数的月份内不起作用

Date EXCEL VBA-查找日期在两位数的月份内不起作用,date,excel,find,vba,Date,Excel,Find,Vba,我正在努力寻找一个范围内的日期。这在两位数月份(1月至9月)可以正常工作,但在其余月份不起作用。我花了一些时间来隔离问题,所以我建立了一个测试例程 以下是数据范围 12.01.2013 12.02.2013 12.03.2013 12.04.2013 12.05.2013 12.06.2013 12.07.2013 12.08.2013 12.09.2013 12.10.2013 12.11.2013 12.12.2013 代码如下: With wsData.Range("A1:A12")

我正在努力寻找一个范围内的日期。这在两位数月份(1月至9月)可以正常工作,但在其余月份不起作用。我花了一些时间来隔离问题,所以我建立了一个测试例程

以下是数据范围

12.01.2013  
12.02.2013
12.03.2013
12.04.2013
12.05.2013
12.06.2013
12.07.2013
12.08.2013
12.09.2013
12.10.2013
12.11.2013
12.12.2013
代码如下:

With wsData.Range("A1:A12")
For i= 1 To 12

    Set rReturn = .Find(What:=CDate("12." & i & ".2013"), LookIn:=xlValues, LookAt:=xlWhole)

Next i
End With

对于前9个循环,我得到了相应的单元格。但对于最后3个循环(10到12),返回值为“nothing”。

问题不在于日期。它们是弦。此外,您还需要格式化
i
,以便可以构造精确的搜索字符串

试试这个

Set rreturn = .Find(What:="12." & Format(i, "00") & ".2013", _
                    LookIn:=xlValues, LookAt:=xlWhole)
经过尝试和测试

Sub Sample()
    Dim wsData As Worksheet
    Dim SearchString As String
    Dim i As Long

    Set wsData = ThisWorkbook.Sheets("Sheet1")

    With wsData.Range("A1:A12")
        For i = 1 To 12
            SearchString = "12." & Format(i, "00") & ".2013"
            Set rreturn = .Find(What:=SearchString, LookIn:=xlValues, LookAt:=xlWhole)

            If Not rreturn Is Nothing Then _
            Debug.Print SearchString & " found in " & rreturn.Address
        Next i
    End With
End Sub

看一看,我遇到过一个类似的情况,使用查找功能查找日期时性能非常差,也许它也可以帮助您。cDate使用您的系统设置查找日期,也许您需要更改日期和月份的顺序,将月份放在第一位