如何解决无法删除包含旧数据的单元格来为新数据让路
在我的工作簿的第 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
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。