Excel表格录入新的数据后自动删除重复的旧数据行,求VBA代码,请高手赐教,谢谢!

来自:学习    更新日期:早些时候
请高手赐教!不同的Excel表格相同的格式数据如何批量导入!(带说明图片)~

有几个问题:
01工作薄中各工作表的格式是否相同(即前4行为表头内容,第5行开始为数据)
02工作薄中各工作表的前8行内容(除第6行外)是否是完全一样。
如果是这样,通过工作表组的操作就可以完成。
先将01工作薄做好备份。
单击01工作薄的Sheet1工作表标签,按住SHIFT键,单击最右边那个工作表标签。这样所有工作表就组成了工作表组。
选中前8行,右键“插入行”,在前面增加8个空白行。
将02工作薄中前8行固定内容手动输入到01工作薄的前8行中(第6行除个)。
在A6单元格输入公式:
=INDEX($A:$A,8+COLUMN())
将公式向右复制到D列。
选中第6行,复制、选择性粘贴,选中“数值”,确定。将公式结果固定下来。
选中第9至12行,删除行。
单击其他任一工作表标签,退出工作表组状态。
这样就变成你要的02工作薄了。

另外,一个工作薄的工作表数量并没有限制至255个。只要你的电脑内存够大,多少个工作表并没有限制。
建立多个工作表的方法:
右击某个工作表标签,点"插入",选择"工作表",点"确定",然后按住Alt+Enter键不放,你要多少个你就按住多久不放,你会看到工作表数量在不断增加,几千个都没有问题。

这个随机的数据的大小没有要求?下面以F列为100~999随机数值为例: (测试通过)

按ALT+F11后,将以下内容复制进去,再点运行宏运行GetRnd,即可

Sub GetRnd()
Randomize
For i = 1 To 150
Do
temp = Int(Rnd() * 899) + 100
If temp Cells(i, 3) Then
Exit Do
End If
Loop

Cells(i, 5) = temp
Next i
End Sub

进入vba编辑器,双击如图所示,进入ThisWorkbook代码编辑窗口,复制下面代码

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Dim i As Integer
i = Application.WorksheetFunction.CountIf(Range("B:B"), Target.Value)
If i > 1 Then Target.Delete xlShiftUp
End Sub


  Workbook_SheetChange为工作薄内部事件,当用户更改工作表中的单元格或者外部链接引起单元格的更改时,产生此事件。参数Target为发生更改的区域。


  使用excel内置函数 CountIf 计算区域中满足给定条件的单元格的个数。delete方法删除刚刚修改的范围,xlShiftUp指定删除单元格时替补单元格的移位方式为向上。



将代码放入 sheet1(sheet1)中JMEYCN已经截图了

Private Sub Worksheet_Change(ByVal Target As Range)
Dim a As Integer
a = Target.Row - 1 '得到填入数据的行数的上一行
If Target.Count > 1 Or Target.Column <> 2 Then  '如果改变的单元格大于1或者列数不是2那么退出程序
Exit Sub
Else
If Sheets(1).Range("b1: b" & a).Find(Target.Value) Is Nothing Then   '查找填入行以上有没有和该单元格相同的值,没有则退出程序否则,将找到的行删除,下行上移
Exit Sub
Else
Sheets(1).Range("b1: b" & a).Find(Target.Value).EntireRow.Delete xlShiftUp
End If
End If
End Sub

 

试下吧 不行的话  HI我

附件  excel 2010版本


 



复制到你要作用的表中
Private Sub Worksheet_Change(ByVal Target As Range)
DIM r As Long, j As Long
If Target.Count = 1 Then
If IsNumeric(Target) Then
With ActiveSheet
j = .[B65536].End(xlUp).Row
If Target.Column <> 2 Or Target.Row > j + 1 And Target.Value = "" Then Exit Sub
For r = 1 To j - 1
If .Cells(r, 2) = Target.Value Then
Application.EnableEvents = False
.Rows(r).Delete
Application.EnableEvents = True
Exit Sub
End If
Next
End With
End If
End If
End Sub

代码简洁,但只能删除新增的B列单元格的内容,可我要的是删除旧的数据,保留新数据,另外该代码不能删除目的数据的整行,高手你修改一下看如何?
放入 sheet......XXX......中,例如(sheet1或sheet2.........)


Excel表格录入新的数据后自动删除重复的旧数据行,求VBA代码,请高手赐教,谢谢!视频

相关评论:
  • 19524231781Excel怎样设置输入数据自动变成数值
    姚帝士1、新建工作表,建立数据源 2、如图,如在D1单元格输入“北京”,将在E1单元格输出“1”,在E1单元格输入公式E1=VLOOKUP(D1,A:B,2,0)3、双击单元格E1,可以看到公式指定区域,“D1”为要工作室需要输入的城市名称,“A:B”表示引用的数据源,通俗讲就是对照表,输入A列数据然后B列自动生成数...

  • 19524231781excel输入数字后后面几位变成了几个0?
    姚帝士1打开需要操作的EXCEL表格,发现常规状态下长串数字最后几位被更改为02为了做对比,选中另外空白单元格,通过鼠标右键选择“设置单元格格式”3再数字标签页,选择“文本”并点击确定4返回EXCEL表格,重新输入长。excel输入数字后后面几位变成了几个0要改为正常输入显示,把数字格式设置成“文本”即可方法步骤...

  • 19524231781Excel表格中新插入行后如何在数据的最底部动态求和
    姚帝士有一列数据,比如A2:A11是一些金额数据,在A12单元格对上面的数据进行求和,A12的函数公式是:=SUM(A2:A11)。但是若在第12行的上面插入若干行,然后在新插入的空白单元格输入数据,原先的函数公式=SUM(A2:A11)不会发生变化,所以无法对新输入的数据进行求和。请看下面的截图:若想能动态汇总上面的数...

  • 19524231781excel怎么录入信息后建立数据库excel怎么录入信息后建立数据库表格
    姚帝士Excel可以通过以下步骤录入信息后建立数据库:1. 打开Excel软件,点击“新建”创建一个新的工作簿。2. 在工作簿中,选择一个工作表作为数据表。3. 在数据表中,按照需要添加各列的字段名,如姓名、性别、年龄等等。4. 在每个字段下方的单元格中输入每个数据的具体值,可以使用Excel提供的数据验证功能,...

  • 19524231781Excel表格录入新的数据后自动删除重复的旧数据行,求VBA代码,请高手赐教...
    姚帝士进入vba编辑器,双击如图所示,进入ThisWorkbook代码编辑窗口,复制下面代码 Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)Dim i As Integeri = Application.WorksheetFunction.CountIf(Range("B:B"), Target.Value)If i > 1 Then Target.Delete xlShiftUpEnd Sub Wor...

  • 19524231781如何设置当excel添加数据后,折线图自动更新?
    姚帝士1、新建一个excel表格,录入数据,选择该列数据,点击“插入”->“图表”开始对该列数据生成图表。2、在弹出的“插入图表”对话框选择“折线图”,软件以行序号为横轴,数据为纵轴生成一个折线图表。3、在原数据后面追加新的数据,直接追加到原数据后面的行,可以看到图表并没有随着更新。4、选中图表...

  • 19524231781excel如何自动合计报表怎么做汇总数据求和
    姚帝士我们在日常工作中会经常使用WPS制作表格,经常为Excel表格录入新的数据以及对数据进行汇总求和,如果下图所示,左侧是“产品销售明细表”,右侧是销售数据动态求和汇总。如果我们每次在表格后面增加一行数据后就重新设置一下表格样式和添加边框,然后把汇总求和公式再下拉填充一次,虽然操作起来不是很麻烦,但是总...

  • 19524231781怎么把excel表格里的内容批量添加新的内容
    姚帝士1、首先打开电脑上的excel文档,选中数据区域后点击鼠标右键,接着在弹出的菜单中选中【设置单元格格式】。2、弹出单元格格式窗口,点击如图所示的【自定义】选项,然后再在【通用格式】后面加上需要的内容即可,具体操作参考下图。设置结束后,点击窗口最下方的【确定】按钮。3、查看原来的数据区域,发现...

  • 19524231781用EXCEL录入数据后如何导入visualfoxpro导入excel数据命令
    姚帝士要将 Excel 中的数据导入到 Visual FoxPro 中,你可以按照以下步骤进行操作:1. 在 Excel 中选择并复制要导入的数据。你可以使用快捷键 Ctrl+C(Windows)或 Command+C(Mac)来复制选定的内容。2. 打开 Visual FoxPro,并创建一个新的表格或打开你想要导入数据的现有表格。3. 在 Visual FoxPro 的...

  • 19524231781什么我在excel 表格中录入数据后,合计不显示总数?
    姚帝士你的单元格属性里 ,可能是选的是文本,选成数字就对了 。所有的都要改完哦

  • 相关主题精彩

    版权声明:本网站为非赢利性站点,内容来自于网络投稿和网络,若有相关事宜,请联系管理员

    Copyright © 喜物网