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

这是你写的代码,但在整个工作簿的所有表都动作,用什么方法让该代码只在工作簿指定的工作表才动作?
展开
 我来答
jmeycn
2013-12-30 · TA获得超过373个赞
知道小有建树答主
回答量:331
采纳率:50%
帮助的人:125万
展开全部
如果你的数据都在第一个工作表,如果没改名字就叫sheet1,
看我上次附的图片,vba编辑器双击sheet1,将所有代码剪切粘贴到这里。
并删除ThisWorkbook中的所有内容,但是过程名应为
Private Sub Worksheet_Change(ByVal Target As Range)

End Sub
来自:求助得到的回答
ch_licai
2013-12-30 · 超过15用户采纳过TA的回答
知道答主
回答量:72
采纳率:50%
帮助的人:41.3万
展开全部
不要写在ThisWorkbook,应该写在Sheet1(Sheet1)或者Sheet2(Sheet2)......选用单元格改变事件
Private Sub Worksheet_Change(ByVal Target As Range)
..............
End Sub
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
清闲的喜鹊哥
2013-12-29 · TA获得超过134个赞
知道小有建树答主
回答量:89
采纳率:100%
帮助的人:79.7万
展开全部
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
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
屋里百惠bZ
2013-12-29
知道答主
回答量:39
采纳率:0%
帮助的人:27.1万
展开全部
自己去学习一下 工作事件吧
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式