循环使用VBA中的引号数

时间:2016-06-16 15:49:22

标签: vba excel-vba loops merge excel

sample table

我正在VBA中创建一个表,正如您在此处的示例表中所看到的,我对每两行依赖于各种单元格的单元格进行了某些合并。但是,表格中可以是静态的部分是深灰色的C列。我只是希望它从1开始进行数字计数并继续到我的表的末尾,但跳过红色水平线并将它们留空。所以,红色将是1,橙色2,黄色3等。这是我想要提高效率的代码。我可以输出每个数字,但这看起来效率很低。

range("C3:C8").Select
ActiveCell.FormulaR1C1 = "1"
With Selection
    .MergeCells = True
    .HorizontalAlignment = xlCenterAcrossSelection
    .VerticalAlignment = xlBottom
End With
range("C10:C12").Select
ActiveCell.FormulaR1C1 = "2"
With Selection
    .MergeCells = True
    .HorizontalAlignment = xlCenterAcrossSelection
    .VerticalAlignment = xlCenter
End With
range("C9:C10").Select
ActiveCell.FormulaR1C1 = "3"
With Selection
    .MergeCells = True
    .HorizontalAlignment = xlCenterAcrossSelection
    .VerticalAlignment = xlCenter
End With

1 个答案:

答案 0 :(得分:2)

我会使用D列中的文字。

Sub add_counter()
    'Created by Fredrik Östman www.scoc.se
    counter = 1
    For i = 7 To ActiveSheet.UsedRange.Rows.Count + ActiveSheet.UsedRange.Row
        If Cells(i, 4) <> "" Then
            Cells(i, 3) = counter
            With Range(Cells(i, 3), Cells(i + 1, 3))
                .MergeCells = True
                .HorizontalAlignment = xlCenterAcrossSelection
                .VerticalAlignment = xlBottom
            End With
            counter = counter + 1
        End If
    Next i
End Sub