我正在尝试创建一个将运行特定行的代码,如果找到值为“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
答案 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。