2016-02-29 58 views
1

我使用下面的代码做自动编号,但是,我想要做的事情是:自动序号表

我在Sheet1 ("Table1")& ("Table2")创建两个表,我想这个应用代码分别给他们。

Private Sub Worksheet_Activate() 
    lrow = Cells(Rows.Count, 2).End(xlUp).Row 
    Set myrange = Range(Cells(2, 2), Cells(lrow, 2)) 
    For Each cell In myrange 
     cell.Offset(0, -1).Value = i + 1 
     i = i + 1 
    Next cell 
End Sub 

回答

0

为什么不使用公式而不是VBA来获取表格的Sl#。

表具有特殊功能,如果一个单元格填充了一个公式,那么它将自动填充该列的其余单元格与初始公式。

因此,在您的表Sl。#列的第二行(表格列标题的第一行)只是复制粘贴下面的公式。

=行($ 1:1)

+0

感谢我的朋友,但我喜欢你更好地在这里使用它作为VBA的帮助,因为没有号码会出现,除非有字/秒小区B,另外,如果我想使用公式我可以使用以下内容:= if(B2 <>,“”,1,“”)和第二行= if(B3 <>“”,1 + B2,“”)。这可以更好地满足我的要求。无论如何,感谢您的帮助 –

+0

但是,您所陈述的公式会在任何行被删除时抛出错误。但在我建议的公式中,您将不会面对#REF错误,因为它会自动调整。 – Sixthsense

+0

你是对的,但你也需要把它放在If-Condition中来做同样的功能,像这样= IF(E10 <>“”,ROWS($ 1:1),“”)。这是一个很好的使用,但我真的很想知道谁可以在VBA中应用两张表中的一张表。因为我不希望任何人清除表格中的公式,因为它被不同的用户使用。这是问题。 –