我想生成以下模式的一系列数字,直到 2500:
1
501
1001
1501
2001
2
502
1002
1502
2002
答案1
你可以这样做:
在第一个单元格中输入:1
在第二个单元格中输入:(=A1+500
或第一个单元格所在的位置)将第二个单元格向下复制三行,这样您就有:
1
501
1001
1501
2001
现在只需选择它们全部,然后将其拖到第 2500 行,然后让自动完成功能完成其工作。
或者,如果你愿意,你也可以用宏来帮你完成这个工作。
像这样:
Sub number()
Dim i As Long, oCN As Long, oColumn As String
oColumn = "A"
oCN = Columns(oColumn).Column
For i = 1 To 500
Range(oColumn & Cells(Rows.Count, oCN).End(xlUp).Offset(1, 0).Row).Value = i
Range(oColumn & Cells(Rows.Count, oCN).End(xlUp).Offset(1, 0).Row).Value = i + 500
Range(oColumn & Cells(Rows.Count, oCN).End(xlUp).Offset(1, 0).Row).Value = i + 1000
Range(oColumn & Cells(Rows.Count, oCN).End(xlUp).Offset(1, 0).Row).Value = i + 1500
Range(oColumn & Cells(Rows.Count, oCN).End(xlUp).Offset(1, 0).Row).Value = i + 2000
Next i
End Sub
在这里,您可以简单地指定要将列表放在哪一列,它将从第 2 行开始(如果该列中已经有内容,则从第 2 行开始)。
因此,在这种情况下,它将从“ A2
”打印到“ A2501
”。
您可以在开发人员选项卡中的 Visual Basic 编辑器中使用它,或者右键单击选项卡并选择“显示代码”。
答案2
您可以使用以下公式生成这些值:
=500*MOD(ROW()-1,5)+INT((ROW()-1)/5)+1
前两个1
s 指的是起始行。