Excel自动编号单元格

时间:2014-04-03 01:49:34

标签: excel excel-vba vba

是否有一种简单的方法可以将列中的单元格编号为一定数量?

例如,假设我正在创建一个包含2列的表:“Trial Number”和“Result”。如果我知道我有5000次试验,我是否可以将它自己编号为1-5000,而不必编号为第一对并拖下来?

2 个答案:

答案 0 :(得分:1)

由于缺乏细节,投票结束,但是其他任何人都可以采取类似的方式

Sub Populate()
Dim lngRow As Long
Dim rng1 As Range

'starting cell
Set rng1 = [a1]
lngRow = Application.InputBox("Pls enter the amount of rows", "User Input", 5000, , , , , 2)
If lngRow > 0 Then
    With rng1
    .Offset(0, 1).Resize(1, 2) = Array("Trial Number", "result")
    .Offset(1, 0).Resize(lngRow, 1).Formula = "=row() - " & rng1.Row
    .Offset(1, 0).Resize(lngRow, 1).Value = .Offset(1, 0).Resize(lngRow, 1).Value
    End With
End If
End Sub

答案 1 :(得分:1)

您也可以试试这个 两个输入,第一个用于数字,然后另一个用于输出单元。

Sub generatenumber()

Dim rng As Range
Dim num As Long

On Error Resume Next
num = Application.InputBox("Enter max numbering", , , , , , , 2)
If Err.Number <> 0 Or num = 0 Then Exit Sub
On Error GoTo 0

On Error Resume Next
Set rng = Application.InputBox("Select destination cell", , "$A$1", , , , , 8)
If Err.Number <> 0 Or rng.Cells.Count > 1 Then Exit Sub
On Error GoTo 0

rng.Range("A1:A" & num).Formula = "=ROW(A1)"
rng.Range("A1:A" & num).Value = rng.Range("A1:A" & num).Value

End Sub

如果用户取消了两个(2)输入框中的任何一个,则例程终止。