Excel VBA:在两个电子表格中删除整个行

这两个电子表格基本上是彼此的副本,除了一个电子表格最后有几个额外的信息列。 每行包含一个产品的信息列,因此具有一致性非常重要。 我正在使用工作表更改macros,我做了一个特定的规范,以便它不会运行,如果我删除整行像这样:

If Target.Cells.Count > 1000 Then Exit Sub 

所以我在If语句之后尝试了这一点,并将Exit Sub移动到该行的末尾以删除另一个电子表格(Operational SKU List)中的行:

 Worksheets("Operational SKU List").Cells(Target.EntireRow, Target.Column).Delete 

我尝试了一些这样的变化,但我总是得到一个问题。 我认为这可能与该行已被删除的事实有关,所以我不能访问“目标”信息,但我不知道还有什么其他的用途。 最终目标是当我在包含工作表变更macros的电子表格中删除一行时,同一行将自动在其他电子表格中删除。 我之所以需要这样做,是因为当我在第一个电子表格中删除一行,然后将新信息上传到第二个电子表格时,我的数据不再alignment,因为右侧的额外列不会在其他电子表格中生效。 如果我同时删除了这两行,我不会遇到这个问题

谢谢。

试一试 – 将下面的代码放在第一个工作表代码模块中,然后将工作表参数调整到第二个工作表所在的位置

第一张工作表是删除行的位置 – 第二张工作表是删除要从第一张工作表镜像的行

 Private Sub Worksheet_Change(ByVal Target As Range) Dim deletedRowsAddress As String Dim deletedRow If Target.Address = Target.EntireRow.Address Then For Each deletedRow In Target.Rows deletedRowsAddress = deletedRowsAddress & "," & deletedRow.row & ":" & deletedRow.row Next deletedRowsAddress = Right(deletedRowsAddress, Len(deletedRowsAddress) - 1) 'CHANGE WORKSHEET ARGUEMENT TO YOUR 2d SHEET NAME Worksheets("2d sheet").Range(deletedRowsAddress).Delete End If End Sub