1

ここでも質問しました: http://www.mrexcel.com/forum/excel-questions/796167-numbering-increments-1-1-n.html

名前付き cellを使用しています。その位置から右に13ポジション、同じ名前付きセルから2ポジションの列の最後のセルに到達するまで番号付けを開始したいと思います。私のテーブルが変更される予定であり、名前付き参照を持つことはその点で良いので、私は尋ねます。

これは、マクロを記録し、その.Selectをクリーンアップした後に得たものです。まだハードコードされた宛先範囲があります。

以下に例を示します。

Sub Macro2()
    Range("endofheaders").Offset(0, 13).FormulaR1C1 = "1"
    Range("endofheaders").Offset(0, 13).AutoFill Destination:=Range("DZ6:DZ21"), Type:=xlFillSeries
End Sub

これがあまり混乱しないことを願っていますが、次のコードは、ソース テーブルのサイズが変更されることを考慮していなかったときに使用していたものです。どこでもハードコードされた範囲があったため、テーブルを編集すると機能しなくなりました。

        With Range("EA6:EA" & Range("DN" & Rows.count).End(xlUp).Row)
            .Cells(1, 1).Value = 1
            .DataSeries Rowcol:=xlColumns, Type:=xlLinear, Step:=1, Trend:=False
        End With

前もって感謝します。

4

2 に答える 2

0

名前付き範囲を使用する賢い。ところで、これを試してください:

Edit1: AutoFill固執する場合は、コードを含めました(コメント行を参照)

Sub Test()
    Dim rng As Range, rngtofill As Range
    Dim lrow As Long, myformula As String

    myformula = "your_formula"

    With Sheet8 '~~> Change to your actual sheet
        Set rng = .Range("endofheaders")
        lrow = .Range(Split(rng.Offset(0, 2).Address, "$")(1) _
            & .Rows.Count).End(xlUp).Row
        Debug.Print lrow
        Set rngtofill = .Range(rng.Offset(0, 13).Address, _
            Split(rng.Offset(0, 13).Address, "$")(1) & lrow)
        Debug.Print rngtofill.Address
        rngtofill.Offset(0, -7).FormulaR1C1 = myformula
        rngtofill.Formula = "=ROW(A1)"
        rngtofill.Value = rngtofill.Value
        'rngtofill.Resize(1, 1).FormulaR1C1 = "1"
        'rngtofill.Resize(1, 1).AutoFill rngtofill, xlFillSeries
    End With
End Sub

番号付けを行う際に別のアプローチを行いました。
余分な行Debug.Printは、正しい値が得られるかどうかを確認するためのものです。AutoFill
を使用する場合は、あなた次第です。 私はそれをコードにコメントしました。HTH。

于 2014-08-04T05:18:00.770 に答える
0

すべての I 列のセル式は次のように記述できます=IF(INDIRECT("E" & ROW()) <> "", <formula>, "")
すべての P 列のセル式は次のように記述できます=IF(INDIRECT("E" & ROW()) <> "", ROW() + 1, "")

これらが名前付き参照に対して相対的である必要がある場合は、次のように記述され
ます。

=IF(INDIRECT("R" & ROW() & "C" & COLUMN(EOH) + 1, FALSE)  <> "", <formula>, "")

P列:

=IF(INDIRECT("R" & ROW() & "C" & COLUMN(EOH) + 1, FALSE)  <> "", ROW() + 1, "")

ここで、EOH は名前付き参照です。

これら 2 つの列の数式を 1000 行以上下にドラッグします。終わり。

于 2014-08-04T01:42:54.070 に答える