【问题标题】:Defining a group of cell names using vba使用 vba 定义一组单元名称
【发布时间】:2015-12-21 17:43:04
【问题描述】:

我有一个问题,我正在尝试使用 vba 在 excel 中定义一个单元格名称。现在只选择一个单元格,我一直在使用以下代码,证明可以正常工作: Range("A1").Name = "zm_1"

但是我需要在一列中命名多个单元格,即:

Range("A1").Name = "zm_1" Range("A2").Name = "zm_2" Range("A3").Name = "zm_3" Range("A4").Name = "zm_4"

由于这对于 100 个单元格来说相当繁琐,我一直在尝试使用数组:

For i=1 to 100 Range("A(i)").Name = "zm_(i)" next

^ 然而,这给出了一个我无法跟踪的错误。关于如何完成的任何想法/建议?谢谢!

【问题讨论】:

    标签: vba excel


    【解决方案1】:

    问题在于Range("A(i)").Name = "zm_(i)" " 表示某些内容是文本,因此您应该将 (i) 放在 " 之外。

    第一部分非常简单,因为您也可以使用行列方式来描述单元格。所以就变成了

    Range(Cells(i,1)).Name

    对于第二部分,您需要连接文本和数字。那变成:"zm_" & i

    【讨论】:

    • 不客气。 Als 看看 Paresh J 的答案,明确引用工作簿和工作表是一件需要牢记的好事情。如果您的代码很小并且只包含一个工作簿和工作表,那么这种方式的行为与他的没有什么不同,但是当更多的工作表或工作簿开始发挥作用时,参考正确的工作表或工作表是非常重要的。您的代码现在只是假设打开的工作簿是应该执行计算的一个,但是当多个工作表开始发挥作用时,必须明确告诉代码要执行。
    • @user5702568,您能否通过接受我的回答来确认我的回答,并通过这样做也让其他人知道这个问题已经解决。
    【解决方案2】:

    你不需要一个数组,只需要你的循环:

    For i = 1 to 100
    Range("A" & i).Name = "zm_" & i
    next
    

    【讨论】:

      【解决方案3】:

      试试下面的代码,希望对你有帮助:

      For i = 1 To 100
      ThisWorkbook.Sheets(1).Range("A" & i).Name = "zm_" & i
      Next
      

      其中Sheet(1) 指的是当前工作簿的 Sheet1。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-04-11
        • 1970-01-01
        • 2015-11-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多