【问题标题】:VBA - Trying to add incrementing numbers to an excel cellVBA - 尝试将递增数字添加到 Excel 单元格
【发布时间】:2014-09-17 19:58:57
【问题描述】:

抱歉,VBA 新手,我找不到我需要的答案(虽然有几个很接近的答案)

我在工作表中有 Col B,它的内容从 B1 向下(在本例中为 B4)。 每次最后填充的单元格的数量都会不同 - 在这个例子中现在是 B4,明天是 B5,下周是 B20。

我想为 B 有值的每个单元格填充一个数字 - 基本上是一个 ID 号 数字不是从 1 开始的,每次都会不同。 A1 中的数字来自另一张表中的单元格——我只是将它复制到 A1,然后我想以此为起点。 然后该数字将随着它的下降而增加。 示例:

ColA ColB

508 -- 喋喋不休

509——亚达亚达

510 -- 等等等等

511 -- 随便

在我的代码中, 这将填充列,但仅使用 A1 中的值

Dim lastRow As Long                     
lastRow = Range("B" & Rows.Count).End(xlUp).Row
Range("A1").AutoFill Destination:=Range("A1:A" & lastRow)

我尝试将行号添加到 A1 的值,然后取出一个 (所以对于第 2 行 = 2+508-1 = 509)

Range("A2:A" & lastRow).Formula = "=ROW()+A1-1"

但运行时,A1 变为 A2,在下一行中变为 A3 等,因此数字不正常

我尝试了其他一些方法,但总是无法正常工作;关闭但没有雪茄。 我一直在寻找例子,我发现的一切都很接近但还不够。

问:有没有办法在填充范围时将 A1 保持为 A1 或者还有其他方法吗?

非常感谢

【问题讨论】:

    标签: vba excel


    【解决方案1】:

    像以前一样手动将值放入A1,然后在A2中输入:

    =IF(B2="","",A1+1)
    

    然后复制下来(不需要VBA)

    编辑#1:

    如果 VBA 是一个要求,那么:

    Sub dural()
        Dim lastRow As Long
        lastRow = Range("B" & Rows.Count).End(xlUp).Row
        Range("A1").AutoFill Destination:=Range("A1:A" & lastRow), Type:=xlFillSeries
    End Sub
    

    【讨论】:

    • 是的,需要 VBA,它是更大整体的一部分。这是完美的 - 非常感谢
    猜你喜欢
    • 2021-04-20
    • 1970-01-01
    • 2014-08-23
    • 1970-01-01
    • 2023-02-13
    • 1970-01-01
    • 1970-01-01
    • 2015-10-09
    • 1970-01-01
    相关资源
    最近更新 更多