在Excel中,我在B列中有连续的盒子编号,每个盒子都有几十个文件,需要在C栏中按顺序排列的位置编号。我通常这样做的方法是在选择中填充系列(用手选择)C列中该框的所有单元格,如果你有几个盒子可以做,这很好,但现在我有几百个。
[我有一个394x290的示例屏幕截图,我将包括显示我的意思,但由于这是我的第一篇文章,我没有足够的代表,抱歉 - link to it on g+ here.]
我以为我可以将一些VBA代码放入一个宏来选择具有相同框号的连续单元格,向右偏移一列[偏移(0,1),是吗?],从1填充系列那些单元格,然后去到下一个方框。但我没有幸运地发现任何类似的事情,也没有能够得到任何我为此而努力的事情。 (这并不奇怪,因为我很少尝试VBA,希望我的问题对于这个网站来说不是太苛刻。)
答案 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循环数千行要快得多。