首页 > 解决方案 > 在单元格为空的地方插入空白行 vba

问题描述

我正在尝试向我的宏添加一些代码,以在“B”列中的值为空白时添加一个空白行。我有以下代码,但它没有做我想要的。它输入了太多的空白行。

    Columns("B:B").Select
    Selection.SpecialCells(xlCellTypeBlanks).Select
    Selection.EntireRow.Insert
    Sheets("Attendance Audit Hastus").Protect

关于我如何做到这一点的任何想法?

标签: excelvba

解决方案


您的代码在标准模块中完美运行,所以我认为您正试图在事件案例中使用它,在“出勤审计 Hastus”表中对吗?因此,您需要双击项目树中的工作表图标并输入以下代码:

Private Sub Worksheet_Change(ByVal Target As Range)
Dim cell As Range
Dim MRange As Range
Set MRange = Range("B:B")
If Not Intersect(Target, MRange) Is Nothing Then
For Each cell In Target
MRange.SpecialCells(xlCellTypeBlanks).Select
Next cell
End If
Application.EnableEvents = False
Selection.EntireRow.Insert
Application.EnableEvents = True
End Sub

请注意,此处使用Application.EnableEvents = False来防止级联事件的无限循环。操作后,您需要设置Application.EnableEvents = True以返回您的正常流程。


推荐阅读