在Excel VBA中插入列(循环)

时间:2014-08-08 22:07:39

标签: excel vba excel-vba

我正在尝试创建一个将运行特定行的代码,如果找到值为“1”的单元格,则会在其旁边添加列并继续。

我偶然发现了一个问题,此时当我的宏找到值为1的单元格时,它开始添加无限数量的列而不是一列并移动到下一个单元格。你能救我吗?

Sub makro()

Set zakres = ActiveSheet.UsedRange
For Each Cell In zakres.Rows(3).Cells
If Cell.Value = 1 Then
Cell.EntireColumn.Select
Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
End If

Next Cell

End Sub

1 个答案:

答案 0 :(得分:0)

您可以尝试使用此列表在任何包含 1 的单元格之前插入列。

Edit1:仅在Row3上迭代

Sub Test()
    Dim r As Range, c As Range, ir As Range
    Dim i As Long

    With Activesheet
        Set r = .Range("A3", .Cells(3, .Columns.Count).End(xlToLeft))
    End With
    For i = r.Cells.Count To 1 Step -1
        If r.Cells(i).Value = 1 Then r.Cells(i).EntireColumn.Insert xlToRight
    Next
End Sub

我们使用经典 For Loop 而不是 For Each 这样我们就可以轻松地向后循环。 HTH。