我在下面的代码是为了只接受这样的日期格式:12.10.2018。通常,在特定列中,人们将从另一个工作表中复制粘贴数据,因此我将代码更改为12-10-2018或12/10/2018等值粘贴到12.10时的日期格式。 2018。
代码工作正常,但似乎存在问题。当这样写入或粘贴日期时:02-02-2018或02/02/2018, - 和/更改为。这很好,但格式也删除了我的零,我不想要那样,所以它变成了2.2.2018。为什么不改为02.02.2018?
A列的日期格式也设置为" 14.03.2014"所以我没有看到问题。为什么不保留0?提前谢谢。
注意:单元格中的格式必须始终为10:即02.02.2018
Private Sub Worksheet_Change(ByVal Target As Range)
Dim date As Range
For Each date In ActiveSheet.Range("a1:a1000")
If Not IsEmpty(date) Then
date.Replace What:="/", Replacement:=".", MatchCase:=True
End If
Next
Dim date1 As Range
For Each date1 In ActiveSheet.Range("a1:a1000")
If Not IsEmpty(date1) Then
date1 .Replace What:="-", Replacement:=".", MatchCase:=True
End If
Next
Dim cellA As Range
Application.EnableEvents = False
For Each cellA In Target
If Not Application.Intersect(cellA , Range("a1:a1000")) Is Nothing Then
If Not IsNumeric(cellA .Value) Then
cellA .Interior.Color = RGB(255, 0, 0)
ElseIf cellA .Value = "" Then
cellA .Interior.Color = RGB(255, 255, 255)
ElseIf Len(cellA .Value) <> 10 Then
cellA .Interior.Color = RGB(255, 0, 0)
Else
cellA .Interior.Color = RGB(255, 255, 255)
End If
End If
Next cellA
Application.EnableEvents = True
End Sub
答案 0 :(得分:1)
您可以按照以下方式执行此操作,而不是使用.Replace方法:
{{1}}