1

我也在这里问过: http ://www.mrexcel.com/forum/excel-questions/796167-numbering-increments-1-1-n.html

我正在使用一个命名单元格,从那个位置开始,向右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

所有 I 列单元格公式都可以写成:=IF(INDIRECT("E" & ROW()) <> "", <formula>, "").
所有 P 列单元格公式都可以写成:=IF(INDIRECT("E" & ROW()) <> "", ROW() + 1, "").

如果这些需要相对于您的命名参考,它们将被写成如下:
I-co​​lumn:

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

P柱:

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

其中 EOH 是您的命名参考。

将这两列的公式向下拖动 1000 多行。完毕。

于 2014-08-04T01:42:54.070 回答
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 回答