如何让VBA取代05/04/2016之后的date与05/04/2016
这是我的第一个问题,所以我会尽可能的清楚。
我在Excel中有一个很大的数据集,而且我特别感兴趣的一列有一些注释,例如“你好,这个产品发布的date是08/04/2017”。 我正在寻找创build一个代码,将允许我改变这些单元格中的每个date到05/04/2016。
编辑:要清楚,每个单元格可能包含或不能包含多个date!
该守则将理想地识别在该单元格之后的2016年4月5日之后的任何date,并且可能在2016年4月5日之前,在该单元格之前不触及任何不在date之前的date或date。
这是我一直在使用的代码,如果它有帮助的话,
Sub ReplaceDate()
Dim x As Date
对于x = 6/4/2016至05/04/2020
Range("C2:C31").Select Selection.NumberFormat = "dd/MM/yyyy" Selection.Replace "x", Replacement:="05/04/2016", LookAt:=xlPart, _ SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _ ReplaceFormat:=False
下一个x
结束小组
正如你可能猜到的,现在代码实际上取代了单元格中的任何“X”,但我已经尝试了诸如Selection.Replace DataValue > 05/04/2016
等。
任何帮助将不胜感激!
亲切的问候。
你可以尝试:
Sub ChangeDate() Dim cell As Range Dim words As Variant Dim iWord As Long For Each cell In Range("C2", Cells(Rows.count, "C").End(xlUp)) '<--| loop through column C cells from row 2 down to last not empty one words = Split(cell, " ") For iWord = 0 To UBound(words) If IsDate(words(iWord)) Then If CDate(words(iWord)) > CDate("05/04/2016") Then words(iWord) = "05/04/2016" Next cell.Value = Join(words, " ") Next End Sub