说我的工作簿中有2张。一个是主列表,其具有仅显示一次的键列以及一些其他相关信息。另一个有多个项目,其中密钥可以列出数百次。
我想要做的是当从主工作表中删除该行时,它会删除与另一个工作表具有相同键的所有行。
这可能吗?
谢谢, 注册
答案 0 :(得分:1)
我们假设有两个工作表 - 第一个是master
,其中包含所有唯一键,第二个工作表名为keys
。
接下来,假设数据设置如下:
**Master** **Keys**
A B A B
1 ABC1 other info... ABC1 other info...
2 ABC2 other info... ABC1 other info...
3 ABC3 other info... ABC2 other info...
4 ABC4 other info... ABC2 other info...
5 ABC5 other info... ABC2 other info...
ABC3 other info...
ABC4 other info...
如果您选择要删除的master
中的密钥并运行以下代码,则会从master
中删除所选密钥,然后循环浏览keys
并删除任何行拥有相同的钥匙:
Sub DeleteKeys()
Dim KeyID As String, KeysLastRow As Long, rw As Long
KeyID = Selection.Value
KeysLastRow = Worksheets("keys").Range("A1").End(xlDown).Row //Get last row in `keys` column A
Selection.EntireRow.Delete //Delete selected key (and row) in `master`
With Worksheets("keys") //Loop through `keys` deleting all matching keys
For rw = KeysLastRow To 1 Step -1
If .Cells(rw, 1).Value = KeyID Then
.Cells(rw, 1).EntireRow.Delete
End If
Next rw
End With
End Sub
希望这有助于您开始使用。