我正在尝试将从专有系统转储出来的一些数据整理成我可以使用的数据。在 A 列中,我想输入“分组依据”数字。
它会转储出分隔不同重复项的长跨行。每当它遇到跨行时,我希望它增加计数器,并删除跨行。
之前的数据是这样的(我手动输入了 A3、A4、A6、A7、A8、A10、A11):
我希望之后的数据看起来像这样:
有什么想法可以实现这一点吗?
最终的解决方案通过以下评论成为可能:
Public Sub CleanMeImFilthy()
Dim intCounter As Integer
Dim i As Integer
i = 1
For intCounter = ActiveSheet.UsedRange.Rows.Count To 1 Step -1
If Trim(LCase(Left(Cells(intCounter, 1).Value, 14))) = "duplicate key:" Then
Rows(intCounter).Delete
i = i + 1
Else
Rows.Cells(intCounter, 1) = i
End If
Next
End Sub
答案1
尝试以下 VBA:
Public Sub CleanMeImFilthy
Dim intCounter as Integer
For intCounter = ActiveSheet.UsedRange.Rows.Count to 1 Step -1
If Trim(Lcase(Left(Cells(intCounter,1).Value,14))) = "duplicate key:" Then
Rows(intCounter).Delete
End If
Next
End Sub
代码所做的就是:
- 从 A 列底部开始 - 其中“底部”是已使用的最后一行。
- 检查当前单元格中文本的前 14 个字符的小写版本(已删除空格)是否等于“重复键:”
- 假设您需要删除的所有行都包含此内容,则会删除该行
我从最底部开始向上工作,因为没有删除行,所以这样更干净,这意味着你下面的行现在就是你。
由于您最初在 Stack Overflow 上发布了此内容,因此我非常有信心您可以将其添加到 Excel 中。如果不能:
- 从此处复制代码
- 按 ALT+F11 进入 VB 编辑器
- 单击菜单栏上的插入|模块
- 单击编辑 | 粘贴 (CTRL+V)
- 关闭 VB 编辑器
- 在包含脏数据的工作表上,按 ALT+F8 获取可用宏的列表
- 选择“CleanMeImFilthy”并选择运行。