循环以递增格式化行

时间:2015-04-04 00:10:54

标签: excel-vba vba excel

我有一个工作表,我想格式化每个第11到第13行,如第5到第7行。我到目前为止意识到我不知道如何推进循环。所以很明显,如果我甚至没有正确地执行此操作,那么sub是仅仅格式化行11-13 37×的微弱尝试。

Rows("5:7").Select
Selection.Copy
For i = 1 To 37
    Rows("11:13").Select
    Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
        SkipBlanks:=False, Transpose:=False
    Application.CutCopyMode = False
Next i

1 个答案:

答案 0 :(得分:0)

听起来你想开始复制行5:7中的格式,然后将11行前进到16:18,27:29,38:40等行,共计3个附加组并粘贴格式。为此,您需要在For Next statement中引入步骤参数。 Step参数始终存在,但默认为 1 ,因此除非您希望以 1 之前的增量前进,否则通常不会显示。

For i = 0 To 33 step 11
    if i = 0 then
        Rows("5:7").copy
    else
        Rows("5:7").offset(i,0).PasteSpecial Paste:=xlPasteFormats, _
                      Operation:=xlNone, SkipBlanks:=False, Transpose:=False
    end if
Next i
Application.CutCopyMode = False

Step 11表示每个周期 i 将递增 11 。这在.Offset(i, 0)中用于进一步向下推进工作表。