填充系列,很多系列?

时间:2014-05-06 03:24:25

标签: excel vba excel-vba

在Excel中,我在B列中有连续的盒子编号,每个盒子都有几十个文件,需要在C栏中按顺序排列的位置编号。我通常这样做的方法是在选择中填充系列(用手选择)C列中该框的所有单元格,如果你有几个盒子可以做,这很好,但现在我有几百个。

[我有一个394x290的示例屏幕截图,我将包括显示我的意思,但由于这是我的第一篇文章,我没有足够的代表,抱歉 - link to it on g+ here.]

我以为我可以将一些VBA代码放入一个宏来选择具有相同框号的连续单元格,向右偏移一列[偏移(0,1),是吗?],从1填充系列那些单元格,然后去到下一个方框。但我没有幸运地发现任何类似的事情,也没有能够得到任何我为此而努力的事情。 (这并不奇怪,因为我很少尝试VBA,希望我的问题对于这个网站来说不是太苛刻。)

2 个答案:

答案 0 :(得分:0)

据我所知,您希望 Plc 列填充从1开始的相同 Box Num 的系列。

可能存在快速而快速的方法,但简单的方法是遍历行。请尝试以下:

Sub FillUpPlc()
    Dim oRng As Range, n As Long ' n used for series filling

    Application.ScreenUpdating = False
    n = 1
    Set oRng = Range("B2")
    Do Until IsEmpty(oRng)
        ' Increment n if it's same as cell above, otherwise reset to 1
        If oRng.Value = oRng.Offset(-1, 0).Value Then
            n = n + 1
        Else
            n = 1
        End If
        oRng.Offset(0, 1).Value = n  ' Store n to next column
        Set oRng = oRng.Offset(1, 0) ' Move to next row
    Loop
    Set oRng = Nothing
    Application.ScreenUpdating = True
End Sub

答案 1 :(得分:0)

无需打破VBA。这可以通过公式完成。从C2开始并复制下来

=IF(B2<>B1,1,C1+1)

比VBA循环数千行要快得多。