(excel,vba) 如果某一行中有的单元格的值为0,则在下面插入一行?怎么用vba实现?谢谢!

2024-11-01 01:49:34
推荐回答(3个)
回答(1):

编辑---查找---选项----勾选单元格匹配----输入0----查找。对话框中会显所有0的格,按住CTRL键,点中找到的数据,关闭对话框,表格中所有0格被选中,在某个0的位置右键---插入---整行---确定。全部0格的“上”方插入一空行。(插入到0的下方不行)必要时可以在输入数据前,把空行拖拽到0的下边。

回答(2):

代码如下:
'A列单元格的值为0,则在下面插入一行
'
Sub Insertrow()
Dim n As Integer
Dim i As Integer
n = [a65536].End(xlUp).Row 'A列最后一行非空单元格行号
i = 1
Do While i <= n '如果当前单元格行号不大于最后一行则执行循环
If Cells(i, "a") = 0 Then '单元格如果是0
Cells(i + 1, "a").EntireRow.Insert '在其下一行插入空行
n = n + 1 '最后一行的行号增加1行
i = i + 1 '跳过新插入的空行
End If
i = i + 1 '行号+1,准备下一个循环
Loop
End Sub

回答(3):

1、某一特征的行(至少有一个单元格为0)
对第x行计算
可以用连乘函数product(x:x)

值为0则满足特征条件
2、如果是在上面的基础上进行加一行操作
VBA中是
rows(x+1).insert
+1表示该行之后
如果是某个单元格(假设为C5)值为0时才加一行,
则用以下语句
if [c5]=0 then
rows(6).insert
end if