这两个电子表格基本上是彼此的副本,除了一个电子表格最后有一些额外的信息列。每行包含一个产品的信息列,因此具有一致性非常重要。我正在使用工作表更改宏,并且我制定了一个特定的规范,以便在我删除整个行时不会运行:
If Target.Cells.Count > 1000 Then Exit Sub
所以我在If语句之后尝试了这个并将Exit Sub移到此行的末尾以删除其他电子表格中的行(Operational SKU List):
Worksheets("Operational SKU List").Cells(Target.EntireRow, Target.Column).Delete
我尝试了一些这方面的变化,但我总是遇到问题。我认为这可能与行已被删除的事实有关,所以我无法访问“目标”信息,但我不确定还有什么可以使用。最终目标是当我在电子表格中删除包含工作表更改宏的行时,将在另一个电子表格中自动删除相同的行。我之所以需要这个,是因为当我删除第一个电子表格中的一行,然后将新信息上传到第二个电子表格时,我的数据将不再对齐,因为右边的额外列不会在另一个电子表格中生效。如果我同时删除了这两行,我将不会遇到这个问题
感谢。
答案 0 :(得分:1)
尝试一下 - 将下面的代码放在第一个工作表代码模块中,并将工作表参数调整到第二个工作表中的注释
第一个工作表是删除行的位置 - 第二个工作表是您要删除要从第一个工作表镜像的行的位置
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