日期格式在开始时不接受零

时间:2018-02-09 08:29:12

标签: excel excel-vba vba

我在下面的代码是为了只接受这样的日期格式: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

1 个答案:

答案 0 :(得分:1)

您可以按照以下方式执行此操作,而不是使用.Replace方法:

{{1}}