VBA自动化--实现去重后跨表复制(excel内嵌实现)

2024-01-14  本文已影响0人  LiBiscuit

一转眼,2024啦~
小李又冒泡了~
前段时间在我们最基本使用的办公软件excel 中,通过内置的vba控件,实现了自动化数据去重复制操作~简单更新一些记录,后续更新会继续自动生成脚本
自动读取的功能~


需求背景:
将sheet1表A列中数据转为纯文本,复制到sheet2 B 列并删除重复数据

实现
不使用excel的基础去重、转格式、复制-通过vba一键完成实现
excel-开发工具-vb编辑器


模块-插入-模块1

代码

Sub merge()

Dim wb As Workbook '定义工作簿变量

Dim ws1 As Worksheet '定义Sheet1变量

Dim ws2 As Worksheet '定义Sheet2变量

Dim lastRow As Long '定义最后一行变量

Dim i As Long

Dim dict As Object

Set dict = CreateObject("Scripting.Dictionary")

'设置工作簿和工作表

Set wb = ThisWorkbook '当前工作簿

Set ws1 = wb.Sheets("Sheet1") 'Sheet1工作表

Set ws2 = wb.Sheets("Sheet1") 'Sheet2工作表

'将Sheet1中的数据复制到Sheet2

lastRow = ws1.Cells(Rows.Count, 1).End(xlUp).Row '获取最后一行

ws1.Range("A1").CurrentRegion.Copy ws2.Range("B1") '复制数据到Sheet3

'获取sheet2中A列最后一行行号

lastRow = ws2.Cells(Rows.Count, 1).End(xlUp).Row '获取最后一行

'遍历A列所有单元格

For i = lastRow To 1 Step -1

'判断单元格的值是否在字典中出现过,如果出现过,则删除整行数据

If dict.Exists(ws2.Cells(i, "A").Value) Then

ws2.Rows(i).Delete

Else

dict(ws2.Cells(i, "A").Value) = 1

End If

Next i

End Sub

插入-窗体-选择所需控件-选择指定vb宏

即可自主实现一键操作。


提前拜个早年!恭喜发财!身体健康!万事如意!

上一篇 下一篇

猜你喜欢

热点阅读