无法删除包含旧数据的单元格来为新数据让路

问题描述

在我的工作簿的第 2 页中,我列出了员工的姓名、他们上班的日期、他们的工作班次以及旷工情况。在我的代码的第 1 表中,我有一个查找表,我打算在其中将员工的姓名输入到一个单元格中,并显示所有日期和此人工作的日期,以及轮班和旷工到查找表中。我尝试了很多东西,但这是我当前的代码

Private Sub worksheet_change(ByVal Target As Range)
    Dim Lookup As Worksheet
    Dim Data As Worksheet
    Dim LastRow As Long
    Dim V As Range
  
    Set Lookup = ThisWorkbook.Worksheets("Lookup")
    Set Data = ThisWorkbook.Worksheets("Data")
    Set V = Lookup.Range("A1:A2")
    
    LastRow = Data.Cells(Rows.Count,"A").End(xlUp).Row
    LookupCounter = 2
    
    For i = 2 To LastRow
    
        If Intersect(V,Target) Is nothing Then
            Lookup.Range("B2:C2000").Delete
        ElseIf Lookup.Range("A2") = Data.Cells(i,2) Then
                Lookup.Cells(LookupCounter,2).Value = Data.Cells(i,1)
                Lookup.Range("B2:B2000").NumberFormat = "mm/dd/yyyy"
                Lookup.Cells(LookupCounter,3).Value = Data.Cells(i,9)
                LookupCounter = LookupCounter + 1
            End If
    Next i
        
End Sub

我的目的是当输入新名称时,这会清除查找页面列中的信息,并输入新名称的新数据。我将名称与日期匹配的代码的第二部分有效,但我正在努力使用清除功能。我能做些什么来修复它?

解决方法

Option Explicit

Private Sub worksheet_change(ByVal Target As Range)
    
    Dim Lookup As Worksheet,Data As Worksheet
    Dim LastRow As Long,LookupCounter As Long,i As Long
  
    With ThisWorkbook
        Set Lookup = .Worksheets("Lookup")
        Set Data = .Worksheets("Data")
    End With

    If Intersect(Lookup.Range("A1:A2"),Target) Is Nothing Then
        Exit Sub
    Else
        ' clear sheet
        Lookup.Range("B2:C2000").Delete
        LastRow = Data.Cells(Rows.Count,"A").End(xlUp).Row
        LookupCounter = 2
        
        ' get data
        For i = 2 To LastRow
           If Data.Cells(i,2) = Lookup.Range("A2") Then
               Lookup.Cells(LookupCounter,2).Value = Data.Cells(i,1)
               Lookup.Cells(LookupCounter,3).Value = Data.Cells(i,9)
               LookupCounter = LookupCounter + 1
           End If
        Next
        Lookup.Range("B2:B2000").NumberFormat = "mm/dd/yyyy"
    End If
        
End Sub