Excel表格录入新的数据后自动删除重复的旧数据行,只在一个工作簿的指定的一个工作表起作用,求VBA代码
'1.代码只针对B列数据‘2.只会查找重复的第一个数据并删除所在的行DimiAsInteger,RngAsRangeSetRng=Cells(Target.Row,2)'...
'1.代码只针对B列数据
‘2.只会查找重复的第一个数据并删除所在的行
Dim i As Integer, Rng As Range
Set Rng = Cells(Target.Row, 2) '修改的B列单元格
If Rng.Value = "" Then Exit Sub
i = Application.WorksheetFunction.Match(Rng, Range("B:B"), 0)
If i > 0 And i < Target.Row Then
Application.EnableEvents = False
Rows(i).Delete xlShiftUp '删除行
Application.EnableEvents = True
End If
这是你写的代码,但在整个工作簿的所有表都动作,用什么方法让该代码只在工作簿指定的工作表才动作? 展开
‘2.只会查找重复的第一个数据并删除所在的行
Dim i As Integer, Rng As Range
Set Rng = Cells(Target.Row, 2) '修改的B列单元格
If Rng.Value = "" Then Exit Sub
i = Application.WorksheetFunction.Match(Rng, Range("B:B"), 0)
If i > 0 And i < Target.Row Then
Application.EnableEvents = False
Rows(i).Delete xlShiftUp '删除行
Application.EnableEvents = True
End If
这是你写的代码,但在整个工作簿的所有表都动作,用什么方法让该代码只在工作簿指定的工作表才动作? 展开
展开全部
不要写在ThisWorkbook,应该写在Sheet1(Sheet1)或者Sheet2(Sheet2)......选用单元格改变事件
Private Sub Worksheet_Change(ByVal Target As Range)
..............
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
..............
End Sub
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
Dim i As Integer, Rng As Range工作表名称=“sheets1”
sheets(工作表名称).Select
Set Rng = Cells(Target.Row, 2) '修改的B列单元格If Rng.Value = "" Then Exit Subi = Application.WorksheetFunction.Match(Rng, Range("B:B"), 0)If i > 0 And i < Target.Row Then Application.EnableEvents = False Rows(i).Delete xlShiftUp '删除行 Application.EnableEvents = TrueEnd If
sheets(工作表名称).Select
Set Rng = Cells(Target.Row, 2) '修改的B列单元格If Rng.Value = "" Then Exit Subi = Application.WorksheetFunction.Match(Rng, Range("B:B"), 0)If i > 0 And i < Target.Row Then Application.EnableEvents = False Rows(i).Delete xlShiftUp '删除行 Application.EnableEvents = TrueEnd If
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
自己去学习一下 工作事件吧
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询