如果删除了同一行中的一个单元格,如何在 Excel 2013 中删除整行?

如果删除了同一行中的一个单元格,如何在 Excel 2013 中删除整行?

您能否建议任何方法,每当我删除特定单元格中的数据时,其行上的所有其他数据都会自动被删除?

我已经研究过如何做到这一点,并且我想出了使用 Visual Basics for Application 代码删除空白行 2,但我真的不知道如何使用它。有人可以教我如何使用我提到的代码吗?

答案1

Excel 没有用于单元格删除的 VBA 事件。

您可以使用 Worksheet_Change 事件。每当工作表中的单元格发生更改时,都会触发此事件。如果更改后单元格为空白,则用户是否刚刚删除了一个单元格或在编辑已经空白的单元格时按下回车键,而没有在单元格中写入任何内容,这是可以推断的。

可以设置更改事件来仅监视特定范围,例如 A 列到 F 列,并且仅当更改后这些列中的单元格为空时才会删除该行。

以此作为前言,这里有一些可以完成我所描述的操作的代码。

Private Sub Worksheet_Change(ByVal Target As Range)

If Not Intersect(Target, Range("A:F")) Is Nothing Then
    If Len(Trim(Target.Value)) = 0 Then
        MsgBox "Cell was deleted - now deleting row" ' remove this line if you dont want the message
        Application.EnableEvents = False ' turn off event monitoring so the routine does not loop
        Selection.EntireRow.Delete
        Application.EnableEvents = True ' turn on event monitoring
    End If
End If

End Sub

复制此代码。然后右键单击工作表选项卡,在上下文菜单中选择“查看代码”,并将代码粘贴到代码窗口中。请记住将文件保存为启用宏的 .xlsm 文件。

相关内容