Vba Excel宏,用于根据包含数据的两个单元格之间的行数插入或删除行
Vba Excel宏,用于根据包含数据的两个单元格之间的行数插入或删除行,vba,excel,Vba,Excel,我说的是一个名字有三个空行,接下来是两个,然后是四个,然后是三个,依此类推 我在寻找一个最终结果,每个名字都有两个空行 这是我目前拥有的,它不起作用,只是在名字下面加了一行 Dim c As Range Dim counting As Boolean Dim zeroCount As Long For Each c In activeSheet.[A2:A30].Cells If Len(c) = 0 Then Exit For Else If
我说的是一个名字有三个空行,接下来是两个,然后是四个,然后是三个,依此类推 我在寻找一个最终结果,每个名字都有两个空行 这是我目前拥有的,它不起作用,只是在名字下面加了一行
Dim c As Range
Dim counting As Boolean
Dim zeroCount As Long
For Each c In activeSheet.[A2:A30].Cells
If Len(c) = 0 Then
Exit For
Else
If Not c.Value2 = "" Then
counting = True
Do While Not zeroCount = 3
If zeroCount < 2 Then
c.Offset(1, 0).EntireRow.Insert Shift:=x1Down, CopyOrigin:=xlFormatFromLeftOrAbove
zeroCount = zeroCount + 1
End If
If zeroCount > 3 Then
c.Offset(1, 0).Delete Shift:=x1Up
zeroCount = zeroCount - 1
End If
End
Loop
zeroCount = 0
Else
If counting Then
zeroCount = zeroCount + 1
End If
End If
End If
Next c
尺寸c作为范围
布尔计数
将零计数设为长
对于activeSheet[A2:A30]中的每个c。单元格
如果Len(c)=0,则
退出
其他的
如果不是c.Value2=“”,则
计数=真
不执行zeroCount=3时执行
如果零计数小于2,则
c、 偏移量(1,0)。EntireRow.Insert Shift:=x1向下,CopyOrigin:=xlFormatFromLeftOrove
zeroCount=zeroCount+1
如果结束
如果zeroCount>3,则
c、 偏移量(1,0)。删除移位:=x1Up
zeroCount=zeroCount-1
如果结束
终止
环
零计数=0
其他的
如果算的话
zeroCount=zeroCount+1
如果结束
如果结束
如果结束
下一个c
谢谢你,阿坎图德,这正是我想要的
听起来您想先清除所有空行,然后运行一个循环,在每行之间插入两个空行和一个蓝行?首先通过自动筛选(更快)或使用循环(更容易编码)来删除空白行,类似于单元格(x,1)=“”然后行(x)。然后执行另一个循环-行(x).insert,行(x).insert,行(x).insert,范围(“A”&x+3&“:G”&x+3).INTERNAR.color=rgb(0,0255),x=x+4。看起来你已经取得了进步,在我看来,最好从清除所有空行开始。如果我能提供任何其他帮助,我会-阿坎图德19小时前 这就是我最后得到的
Dim cnt As Integer
Range("A2:A26").SpecialCells(xlCellTypeBlanks).EntireRow.Delete
With activeSheet
cnt = .Cells(.Rows.Count, "A").End(xlUp).Row
End With
For i = Range("A2").End(xlDown).Row To 3 Step -1
'Gives rows to the last person
If i = cnt Then
Rows(i + 1).Insert Shift:=xlDown, CopyOrigin:=xlFormatFromAbove
Rows(i + 1).Insert Shift:=xlDown, CopyOrigin:=xlFormatFromAbove
Rows(i + 1).Insert Shift:=xlDown, CopyOrigin:=xlFormatFromAbove
End If
Rows(i).Insert Shift:=xlDown, CopyOrigin:=xlFormatFromAbove
Range("A" & i, "G" & i).Interior.Color = RGB(197, 217, 241)
Rows(i).Insert Shift:=xlDown, CopyOrigin:=xlFormatFromAbove
Rows(i).Insert Shift:=xlDown, CopyOrigin:=xlFormatFromAbove
Next i
这非常有效,谢谢也许删除所有空行会更容易,然后执行一个简单的循环来添加2行?如果一个行是空的,你可以运行一个循环来删除它,或者让它自动排序,然后按字母顺序排序,所以所有的空白行都移动到最后。在一行加上一个名称,然后是空白行之后,还有一行,在下一个名称之前,有一个蓝色填充从一个G到单独的每个人的任务,这仍然很容易按照刚才描述的方式完成吗?听起来好像你想先清除所有的空白行,然后运行一个循环,在每行之间插入两个空白行和一个蓝色行?首先通过自动筛选(更快)或使用循环(更容易编码)来删除空白行,类似于单元格(x,1)=“”然后行(x)。然后执行另一个循环-行(x).insert,行(x).insert,行(x).insert,范围(“A”&x+3&“:G”&x+3).INTERNAR.color=rgb(0,0255),x=x+4。看起来你已经取得了进步,在我看来,最好从清除所有空行开始。如果我能提供任何其他帮助,我会的-