我正在尝试在列中编写用于动态计数的代码。我从上到下使用UserForm插入数据(因此新数据始终位于第二行(第一行用于标题)。
对于A列,每次插入数据时我都希望有一个计数。让我举一个例子:
Numeration Columns2 Column3
Row1 2 Value Value
Row2 Value Value
Row3 Value Value
---------------------------------------------------
Row4 1 Value Value
Row5 Value Value
现在,我想要一个短宏,始终将下一个数字插入单元格A2中。它必须是动态的,因为有时我要添加3行数据,有时要添加更多或更少的行。因此,它应该在A列中搜索下一个数字,在其中添加+1并将其粘贴到单元格A2中。
我希望我想做什么。
答案 0 :(得分:0)
使用WorksheetFunction.Max method在A列中找到最大值,然后添加+ 1
。
With Worksheets("SheetName")
.Range("A2").Value = WorksheetFunction.Max(.Columns("A")) + 1
End With
请注意,如果存在以下情况,WorksheetFunction.Max
会引发异常:公式在A列中包含错误,因此您可能想使用Error Handling来捕获错误。
替代解决方案(由Zac建议)
示例:
Dim PickValue As Long
PickValue = Worksheets("SheetName").Range("A2").Value
'add your rows here now
Worksheets("SheetName").Range("A2").Value = PickValue + 1
答案 1 :(得分:0)
如果还添加了“ -----”,则可以使用以下内容。
这是我从A1开始的桌子
=IF(ROW()=1,1,IF(RIGHT(OFFSET(A1,-1,0),1)="-",MAX(OFFSET($B$1,0,0,ROW()-1,1))+1,""))
如果需要,您还可以扩展right
检查,使3个字符=“ ---”覆盖所有-ve值。