excel - 用于删除重复标题/元数据的 VBA 宏
问题描述
我有一个包含重复标题和页码的工作簿,我想通过 vba 宏删除它们。
下面的屏幕截图在我的工作簿中重复出现,我尝试编写一个宏来查找特定文本并删除,但会导致数据错误地移动并且效率极低。标题之间的行并不总是 3,所以我不能有一个宏每 x 行盲目删除 5 行。为清楚起见,我试图删除粗体文本,同时不丢失非粗体数据的完整性。
是否可以有一个超出特定范围的宏来删除上面描述的重复标题和元数据?
宏尝试使用如何根据单元格值删除行。可以理解地更改每个标题/元数据的文本不是一个合理的解决方案,并且会导致数据偏移。
Sub DeleteRowsWithHyphen()
Dim rng As Range
For Each rng In Range("A2:A20") 'Range of values to loop through
If InStr(1, rng.Value, "Page 1 of 10") > 0 Then 'InStr returns an integer of the position, if above 0 - It contains the string
rng.Delete
End If
Next rng
End Sub
解决方案
看起来您可以删除所有列中不是数字的行。如果是这样,那么尝试..
Sub DeleteNonNumberRows()
Dim rng As Range, Cl As Range, DelRng As Range
LRow = Range("A" & Rows.Count).End(xlUp).Row
Set rng = Range("A1", "A" & LRow)
For Each Cl In rng
If IsNumeric(Cl) = False Or Cl = "" Then
If DelRng Is Nothing Then
Set DelRng = Cl
Else
Set DelRng = Union(DelRng, Cl)
End If
End If
Next
DelRng.EntireRow.Delete
End Sub
请注意,rng 从 A1 开始。根据需要进行更改。
推荐阅读
- azure - Azure 数据工厂 - 如何使用 ForEach 循环遍历 CSV 文件中的记录
- php - Laravel Spatie 获取用户角色
- java - 使用 java selenium 获取酒店名称列表
- javascript - 从对象中选择选项以在下一个选择中显示下一个选项
- python - 从python中的元组列表中返回带有2个键的字典
- python - sin(x) 自相关函数 python
- python - PyDrive 2.0 – AuthenticationError:在重定向中找不到代码
- android - 是否可以在 Android 中保存 VideoView 中的视频?
- php - ID 字段不显示(在 Larave 从 6.x 更新到 7.x 和 Nova 2.x 到 3.x 之后)
- unit-testing - 如何使用 mockito 测试使用 Kotlin 调用的回调