Excel(2003)マクロでセルに連続番号を入力する


2

Excelの列を連続するシリーズ(この場合は-500から1000)で埋める必要があります。それを行うためのマクロがありますが、単一の関数であるように思われるものには多くの行が必要です[ FillRange(A2:A1502、-500、1000、1)]のようなもの。しかし、その機能が存在する場合、私はそれを見つけることができません。以下は、シンプルでエレガントなものですか?

'Draw X axis scale
Cells(1, 1).Value = "mV"
Cells(2, 1).Value = -500
Cells(3, 1).Value = -499
Cells(4, 1).Value = -498

Dim selection1 As Range, selection2 As Range

Set selection1 = Sheet1.Range("A2:A4")
Set selection2 = Sheet1.Range("A2:A1502")

selection1.AutoFill Destination:=selection2

回答:


6
Range("A1")=-500
Range("A1").Select
Selection.DataSeries Rowcol:=xlColumns, Type:=xlLinear, Date:=xlDay, _
        Step:=1, Stop:=500, Trend:=False

まさに私が探していたもの-ありがとう!
フレッドハミルトン

5
Sub FillASeries()

    With Sheet1.Range("a1")
        .Value = -500
        .AutoFill .Resize(1501, 1), xlFillSeries
    End With

End Sub

単一の機能があるとは思わないが、これは手順を作成できる限り短い。


2

探しているのは機能ではありません。

A2に-500と入力し、「Ctrl + Enter」と入力します(数値を受け入れてセルを選択します)

次に、[編集]メニュー-> [入力]-> [シリーズ]に移動します

「シリーズ」を「列」に設定します

「停止値」を1000に設定します

[OK]を押すと、目的の結果が得られます。


0
Sub Test()

    Call NumberSeriesI(Sheet1.Range("A1"), "MySeries", -1000, 500, 1)

End Sub

Sub NumberSeriesI(StartCell As Range, Header As String, FirstN As Integer, LastN As Integer, StepN As Integer)

' Integer version

    Dim i As Integer ' Value
    Dim r As Integer ' row

    StartCell.Cells(1).Value = Header ' Cells(1) makes sure it only uses the first cell of passed-in range,
                                        ' in case you pass in a multi-celled range for StartCell
    i = FirstN
    r = 1

    Application.ScreenUpdating = False ' Much faster, so the screen is not refreshed until all the values in place

    For i = FirstN To LastN Step StepN
        StartCell.Cells(1).Offset(r, 0).Value = i
        i = i + StepN
        r = r + 1
    Next i

    Application.ScreenUpdating = True

End Sub ' NumberSeriesI
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.