【问题标题】:VBA auto number cells that contain text包含文本的 VBA 自动编号单元格
【发布时间】:2019-02-12 13:22:43
【问题描述】:

我正在尝试为以下问题找到解决方案:A 列包含名称,我想将这些名称保留在那里并使用自动编号的代码。 比如:

我在 StackOverflow 上看过不少示例,但这些代码的作用主要是自动编号某些单元格,而无需将文本保留在同一个单元格中:vba auto increment a number?
请你帮助我好吗?

这是我使用的代码,但我只设法插入数字,而不是将文本保留在同一个单元格中。

Sub autonumber()


Dim i As Integer
Dim cell As Range, rng As Range

Set rng = Range("A1:A10")

i = 1

For Each cell In rng
    cell.Value = "" & i
    i = i + 1
Next cell

End Sub

【问题讨论】:

  • 到目前为止您尝试过什么?如果您不知道任何 VBA 代码,最简单的解决方案是复制到 Word,自动编号并作为文本复制回来
  • 您可以编辑您的问题并将代码放在那里。但是如果我可以用公式来做,我通常会避免使用 VBA,比如@Luis Curado 的回答。
  • @iamanigeeit : 那是我用过的代码,我不知道如何在单元格中保留名称;
  • cell.Value = "" & i 更改为 cell.Value = i & ". " & cell.Value
  • 如果你只是想选择和自动编号,那么你根本不需要rng:只需使用For Each cell In Selection

标签: vba excel autofill autonumber


【解决方案1】:

不用 VBA 也可以。

只是:

  • 在单元格 A1 中输入公式 =row(A1)& ". " &C1 并复制给其他人

你可以创建一个“自动编号”将行(A1)传播到 A 列的单元格

祝你好运

【讨论】:

  • 谢谢!我有上面的代码,我被困在保留初始文本的部分;
  • 在你的代码中你必须有 C 列文本,就像 cell.Value = "" & i & ". " & Range("c" & i)。祝你好运
  • 谢谢@Luis Curado。对不起,也许我没有很好地解释:在我的工作表中,C 列中没有名字! A 中只有名称,我想在其中进行自动编号并保留输入的初始文本!
【解决方案2】:

改变

cell.Value = "" & i

cell.Value = i & ". " & cell.Value

此外,如果您只想选择和自动编号,那么您根本不需要rng:只需使用

For Each cell In Selection 

【讨论】:

    【解决方案3】:

    添加到@Luis Curado 的答案,如果您不是从第一行开始(比如从 A4 开始),您可以这样做

    =ROW(A4)-ROW(A$4)+1&". "&A4
    

    【讨论】:

    • 谢谢!正如我上面写的,我确实插入了一个编号,但我也想保留文本;
    • 你试过这个公式了吗?因为最后一部分&A4在A4中添加了文字
    • 对不起,也许我没有很好地解释:在我的工作表中,C 列中没有名字! A 中只有名称,我想在那里进行自动编号并保留输入的初始文本。例如,您的公式在没有保留文本的情况下进行了编号。
    • 呃,你得把公式放在B4或者别的地方
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多