java 删除excel重复的行数_删除重复行但使用Excel 2007将数据保留在三列中

本文介绍了一种通过VBA宏在Excel 2007中删除重复行的方法,同时保持数据在A到Q列中。通过在VBA编辑器中插入模块,然后编写和运行RemoveDupesAndRetainData子程序,可以实现按升序排序并合并重复行的特定列(I、P、Q列)的数据。通过逐步执行宏并利用VBA的调试和帮助功能,用户可以理解和调整代码以适应自己的需求。
摘要由CSDN通过智能技术生成

希望得到永恒的感激......

用数据打开工作表,按ALT F11启动IDE,然后单击插入 - >模块 . 这将在你的VBA“Project”中添加一个“Module”

在“项目管理器窗口”中(单击视图 - >“项目管理器窗口”以显示它)双击“Module1”节点以打开模块代码窗格并将此代码放入其中

Option Explicit

Sub RemoveDupesAndRetainData()

Dim cell As Range

Dim nDupes As Long

With ActiveWorkbook.Worksheets("Data") '

With .Range("A1:Q" & .Cells(.Rows.Count, 1).End(xlUp).Row) '

.Sort key1:=.Range("A1"), order1:=xlAscending, Header:=xlYes '

For Each cell In .Offset(1).Resize(, 1).SpecialCells(xlCellTypeConstants) '

nDupes = WorksheetFunction.CountIf(.Columns(1), cell.Value) - 1 '

If nDupes > 0 Then '

.AutoFilter Field:=1, Criteria1:=cell.Value ' only rows with same current cell content will be displayed...

With .Offset(1).Resize(.Rows.Count - 1).SpecialCells(xlCellTypeVisible) ''

Intersect(cell.EntireRow, .Columns("I")).Value = Join(Application.Transpose(Intersect(.Cells, .Columns("I").EntireColumn)), ";") ' ...concatenate "Resource" field...

Intersect(cell.EntireRow, .Columns("P")).Value = Join(Application.Transpose(Intersect(.Cells, .Columns("P").EntireColumn)), ";") ' ...concatenate "Special" field...

Intersect(cell.EntireRow, .Columns("Q")).Value = Join(Application.Transpose(Intersect(.Cells, .Columns("Q").EntireColumn)), ";") ' ...concatenate "Notes" field...

cell.Offset(1).Resize(nDupes).EntireRow.Delete '

End With

.AutoFilter '

End If

Next cell

End With

End With

End Sub

返回Excel UI,按Alt F8弹出“宏”对话框

在组合框中选择“RemoveDupesAndRetainData”,然后按“执行”按钮

观察会发生什么...如果出现错误,您可以按错误消息框中的“调试”按钮,将您引入VBA编辑器右侧的行,从而导致错误

另一种运行宏的方法如下:

在VBA IDE(来自Excel UI的ALT F11)模块代码窗格中(双击项目管理器窗口中所需的模块节点)将鼠标光标放在 Sub RemoveDupesAndRetainData 和 End Sub 语句之间的任意点,然后按F8使宏开始第一线黄色阴影

现在按F8键逐步执行将要执行的每个代码行,并且还会显示黄色阴影

在每个步骤中,您可以通过将鼠标悬停在代码中的任何位置上或通过在立即窗口中键入 ? variable_name 来查询每个变量值(您可以通过单击"Ctrl+G"或选择View-> Immediate Window来显示)

将鼠标光标放在任何有意义的代码“word”中并按“F1”将启动相关的帮助主题以了解该特定对象 . 每个主题都将有超链接深入挖掘并获得更多相应的信息

当然,网络是另一个宝贵的知识来源,在那里可以找到几乎所有你需要的东西,有几十个特定于Excel和VBA的博客

我认为上面的内容会让你开始,更重要的是,继续下去

这是一个漫长的过程,但是这里帮助编码研究员的每个人都是这样开始的,并且从未达到过这个目的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值