Excel 如何在每个唯一值后插入11个空行

Excel 如何在每个唯一值后插入11个空行,excel,vba,Excel,Vba,我已经为1个空行创建了代码,但我需要将其更改为11个空行 我一行有4000个值。我需要在一行中找到的每个唯一值之后插入11行 Sub AddBlankRows() ' Dim iRow As Integer, iCol As Integer Dim oRng As Range Set oRng = Range("a1") iRow = oRng.Row iCol = oRng.Column Do ' If Cells(iRow + 1, iCol) <> Cells(iRow,

我已经为1个空行创建了代码,但我需要将其更改为11个空行 我一行有4000个值。我需要在一行中找到的每个唯一值之后插入11行

Sub AddBlankRows()
'
Dim iRow As Integer, iCol As Integer
Dim oRng As Range

Set oRng = Range("a1")

iRow = oRng.Row
iCol = oRng.Column

Do
'
If Cells(iRow + 1, iCol) <> Cells(iRow, iCol) Then
    Cells(iRow + 11, iCol).EntireRow.Insert shift:=x1Down
    iRow = iRow + 2
Else
    iRow = iRow + 1

End If
'
Loop While Not Cells(iRow, iCol).Text = ""
'
End Sub
Sub AddBlankRows()
'
Dim iRow为整数,iCol为整数
暗角范围
设置oRng=范围(“a1”)
iRow=角行
iCol=角柱
做
'
如果单元格(iRow+1,iCol)单元格(iRow,iCol),则
单元格(iRow+11,iCol).EntireRow.Insert shift:=x1Down
iRow=iRow+2
其他的
iRow=iRow+1
如果结束
'
非单元格时循环(iRow,iCol)。Text=“”
'
端接头
因此,此代码在每个唯一值后插入一个空行。 我想把它改成11个空行

之前:

之后:


根据您最后的评论(和屏幕截图),抓取我最后的答案:

“我在A行中有4000个值。每行值之间需要11行”

以及:

“在我的数据中,行中的值将是唯一的(即范围A:A 4000行是唯一的”

在我看来,你所有的价值观都是独一无二的。不需要再做任何测试:

Sub Test()

Dim lr As Long, x As Long, ws As Worksheet

'Set your worksheet as variable
Set ws = ThisWorkbook.Worksheets("Sheet1")

'Get last used row of column A and fill array
lr = ws.Cells(ws.Rows.Count, 1).End(xlUp).Row

'Loop backwards
For x = lr + 1 To 3 Step -1
    ws.Rows(x).Resize(11).Insert xlShiftDown
Next x

End Sub

根据您最后的评论(和屏幕截图),勾选我的最后一个答案:

“我在A行中有4000个值。每行值之间需要11行”

以及:

“在我的数据中,行中的值将是唯一的(即范围A:A 4000行是唯一的”

在我看来,你所有的价值观都是独一无二的。不需要再做任何测试:

Sub Test()

Dim lr As Long, x As Long, ws As Worksheet

'Set your worksheet as variable
Set ws = ThisWorkbook.Worksheets("Sheet1")

'Get last used row of column A and fill array
lr = ws.Cells(ws.Rows.Count, 1).End(xlUp).Row

'Loop backwards
For x = lr + 1 To 3 Step -1
    ws.Rows(x).Resize(11).Insert xlShiftDown
Next x

End Sub


你应该自下而上工作,而不是自上而下。这是因为开始插入行时行号会发生变化。您希望在工作表的某个部分中进行这些更改,而代码将不再引用该部分。因此iRow=iRow-1(从底部开始)。这是否回答了您的问题?没有@ BRAX,我需要运行相同的,直到空白单元格成立,真正的问题是“我如何增量直到空白单元格被发现”?你有多少行的值在你的起始列?这完全可以不用迭代就可以完成。你应该自下而上工作,而不是自上而下。这是因为开始插入行时行号会发生变化。您希望在工作表的某个部分中进行这些更改,而代码将不再引用该部分。因此iRow=iRow-1(从底部开始)。这是否回答了您的问题?没有@ BRAX,我需要运行相同的,直到空白单元格成立,真正的问题是“我如何增量直到空白单元格被发现”?你有多少行的值在你的起始列?这完全不需要迭代就可以完成。它只插入11个单元格,而不是11行。而且它不会继续循环。它在A2之后插入11个单元格,并在我的样本数据截图前后停止加载。每个单元格之间需要11行。请帮我把它拿出来finished@JvdV在我的数据中,一行中的值将是唯一的(即)范围A:A 4000行是唯一的unique@JvdV最后一个很好用。。感谢您的及时回复,无忧@Roguen。很高兴分类了。请清理多余的注释=)它只插入11个单元格,而不是11行。而且它不会继续循环。它在A2之后插入11个单元格,并在我的样本数据截图前后停止加载。每个单元格之间需要11行。请帮我把它拿出来finished@JvdV在我的数据中,一行中的值将是唯一的(即)范围A:A 4000行是唯一的unique@JvdV最后一个很好用。。感谢您的及时回复,无忧@Roguen。很高兴分类了。请清理多余的注释=)