excel - vba :有什么方法可以删除行数吗?应用后删除重复项(单个/多个)
问题描述
我的疑问是:在 VBA 编码中,有没有可能知道,运行以下过程后有多少行受到影响
Sub RemoveDuplicatesWithNoHeaders()
Range("A1:D35").RemoveDuplicates Columns:=Array(1), Header:=xlNo ' for mutiple columns Array(1, 2, 3, 4)
End Sub
运行此程序后,我们能否获得删除了多少行
解决方案
更新:好的,当我尝试将之前的答案放入函数时,它不起作用,所以很明显我的测试有问题......
这是一个应该实际工作的替代方案(通过计算重复删除前后范围内的空白单元格的数量)
Sub TestDupsCount()
Debug.Print RemoveAndCountDuplicates(Range("A1").CurrentRegion, _
Array(1, 2, 3, 4), xlNo)
End Sub
Function RemoveAndCountDuplicates(rng As Range, ArrCols, _
haveHeaders As XlYesNoGuess)
Dim oldBlank As Long, newBlank As Long, rv
rv = 0
oldBlank = NumEmptyRows(rng)
'https://stackoverflow.com/question/39104653/vba-remove-duplicates-fails-when-columns-array-is-passed-using-a-variable
rng.RemoveDuplicates Columns:=(ArrCols), Header:=haveHeaders
newBlank = NumEmptyRows(rng)
RemoveAndCountDuplicates = newBlank - oldBlank
End Function
Function NumEmptyRows(rng As Range) As Long
Dim rw As Range, i As Long, cols As Long
cols = rng.Columns.Count
For Each rw In rng.Rows
If Application.CountBlank(rw) = cols Then i = i + 1
Next rw
NumEmptyRows = i
End Function
推荐阅读
- azure - 在 Azure Devops 中为单个团队成员创建燃尽图
- wordpress - wordpress:自动注销
- java - 在java中创建两个用于支票和储蓄帐户的子类
- python-3.x - 如何从 TPR 和 FPR 中查找和绘制 AUC 分数
- python - 通过 cv2 python 脚本发送 ROS 消息
- javascript - 使用 next() 的执行流程
- oracle - 通过 SSH 连接远程 Oracle 服务器的 DbFit
- azure - 嵌套资源类型的段数必须与其资源名称相同
- javascript - 如何在不知道 React-Native 扩展名的情况下从 url 获取文件
- javascript - 无法在我的单元测试中使用 Jest 渲染 Vue 组件