我有一行交易日期,存储在A栏。它包含交易日,因此,它不包含一年中的所有日期。我想得到一个特定的日期,并删除它一年。我想在同一列中找到newdate单元格的索引。如果不可能,我想找到下一个最近的日期。
到目前为止我尝试过:
Dim date1 As Double
date1 = Sheets("Part2").Cells(i, 1).Value
Dim matchRow As Integer
matchRow = 3
While Sheets("1.A").Cells(matchRow, 1).Value <> date1
matchRow = matchRow + 1
Wend
我可以在工作表中获得特定日期,但现在我需要在此之前一年获得日期,如果不是在此之后的最近日期。
需要一些指导才能做到这一点。
还尝试过: 表格(&#34; Part2&#34;)。单元格(i,1)。值-365。它不起作用..
答案 0 :(得分:2)
使用DateAdd:
DateAdd("yyyy",-1,Sheets("Part2").Cells(i, 1).Value)
UPD ,因为您的日期以格式存储为文本&#34; yyyymmdd&#34;从第3行开始,使用这个:
Dim date1 As Date
Dim srtDate1 As String, srtDate2 As String
Dim matchRow
strDate1 = Sheets("Part2").Cells(i, 1).Value
date1 = DateSerial(Left(strDate1, 4), Mid(strDate1, 3, 2), Right(strDate1, 2))
srtDate2 = Format(DateAdd("yyyy", -1, date1), "yyyymmdd")
matchRow = Application.Match(CDbl(srtDate2), Sheets("Part2").Range("A:A"), 1)
If IsError(matchRow) Then
matchRow = 3
Else
matchRow = matchRow + 1
End If
MsgBox "new date: " & Sheets("Part2").Range("A" & matchRow)