我必须为链式计算器生成Excel VBA宏,因此我必须保留特定名称的第一个条目和最后一个条目,并删除其间的所有值。例如:
所以我想留下第一个Rivor Minor253
和最后一个Rivor Minor253
,但必须删除所有中间的{{1}}。现在,我可以手动执行此操作,但我有超过3,000行,这将花费我几天的时间来完成,我可以生成一个删除重复的宏,但我不知道如何生成一个只会删除中间的宏。
有人能为我提供适合我描述的宏吗?
答案 0 :(得分:0)
如果愿意,请先打开“录制宏”。假设CHAINAGE
在ColumnA中,在Row39中并向下复制以适合请尝试:
=OR(COUNTIF(B$1:B39,B39)=1,COUNTIF(B$1:B39,B39)=COUNTIF(B:B,B39))
然后过滤该列以选择和删除行FALSE。
答案 1 :(得分:0)
作为一个宏,这非常简单。
Sub del_brick()
Dim fr As Long, lr As Long
With Worksheets("Sheet1") '<~~ set this properly!
lr = Application.Match("zzz", .Columns(2))
Do While lr > 40 '<~~ if lr is above row, there is nothing to delete
fr = Application.Match(.Cells(lr, 2).Value2, .Columns(2), 0)
If CBool(lr - fr - 1) Then
.Range(.Cells(fr + 1, 1), .Cells(lr - 1, 1)).EntireRow.Delete
End If
lr = fr - 1
Loop
End With
End Sub