excel - 自动添加行
问题描述
我是 VBA 的新手,当 B 列的单元格中有一些内容时,我有下面的代码自动添加一行。但是,我想修改公式,以便如果我更改单元格中的内容已经有内容或删除单元格中的内容并稍后在同一单元格中重写某些内容它不会添加额外的行。非常感谢!
Private Sub Worksheet_Change(ByVal Target As Range)
'Test if change is in column B and only one cell changed
If Not Intersect(Target, Me.Columns("B")) Is Nothing And _
Target.Cells.Count = 1 Then
If len(Target)>0 then
Target.Offset(1, 0).EntireRow.Insert Shift:=xlDown 'Insert row below data entry
'Target.EntireRow.Insert Shift:=xlDown 'Insert row above data entry
End If
End If
End Sub
解决方案
假设您要在下方插入一行以整理文档并使其更易于读取数据(一个空白行,将始终保持空白),那么您可以在插入该行之前使用 CountA 添加一个简单的逻辑检查以查看是否目标单元格下方已经有一个空白行。如果有一个空白行,它不会添加一个,如果没有,那么它会添加一个:
Private Sub Worksheet_Change(ByVal Target As Range)
'Test if change is in column B and only one cell changed
If Not Intersect(Target, Me.Columns("B")) Is Nothing And _
Target.Cells.Count = 1 Then
If Len(Target) > 0 And Application.CountA(Rows(Target.Offset(1).Row)) <> 0 Then 'New condition added here
Target.Offset(1, 0).EntireRow.Insert Shift:=xlDown 'Insert row below data entry
'Target.EntireRow.Insert Shift:=xlDown 'Insert row above data entry
End If
End If
End Sub
推荐阅读
- scala - groupby scala 字符串列表
- javascript - 使用 php、javascript 和 ajax 进行简单登录
- java - 使用 CriteriaQuery 选择通用主键
- c++ - 使用 C++ 导出注册表
- sqlite - GDX-SQLite android.database.CursorIndexOutOfBoundsException:请求索引 -1,大小为 1
- java - 如何使用带有jpa的spring boot一起软删除父母和孩子(级联)
- php - 未从数据库中获取数据
- debugging - oc debug pod 使用最新图像而不是调试过的原始图像
- mysql - MySQL插入触发日期检查
- excel - 复制不相邻的单元格并粘贴转置但不粘贴到整行