我正在尝试查找某个范围内的日期。这适用于2位数(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个循环,我得到rReturn的相应单元格。但是对于最后3个循环(10到12),返回值是“无”。
答案 0 :(得分:0)
问题不在于日期。他们是字符串。您还需要格式化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