2015-12-21 39 views
0

我有一个问题,我想用vba在excel中定义一个单元格名称。我们选择一个小区只有我一直在使用下面的代码被证明很好地工作:不过,我需要的名字在列,即多个小区 Range("A1").Name = "zm_1"使用vba定义一组单元格名称

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

^然而这给出了我有b中的错误een无法追踪。任何想法/建议如何完成?谢谢!

回答

1

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

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

问题是与Range("A(i)").Name = "zm_(i)"的“指示某些文本,所以你应该把你(我)出来的”。

对于第一部分来说很简单,因为您也可以使用行和列的方式来描述单元格。因此变得

Range(Cells(i,1)).Name

为您需要连接的文字和数字的第二部分。变成:"zm_" & i

+0

感谢您的解释!工作好的欢呼 – user5702568

+0

不客气。 Als看看Paresh J的答案,明确引用工作簿和工作表是一件值得记住的事情。如果你的代码很小,只包含一个工作簿和工作表,这种方式与其他工作表没有什么不同,然而当更多的工作表或工作簿出现时,引用正确的代码非常重要。现在你的代码只是假定打开的工作簿是应该执行的一个计算,但是当多个工作表起作用时,必须明确地告诉代码要去。 – Luuklag

+0

@ user5702568,您是否也可以通过接受我的答案来承认我的答案,并且通过这样做也让其他人知道这个问题已得到解决。 – Luuklag

1

尝试下面的代码,并希望它可以帮助你:

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

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

+0

谢谢你的接吻!干杯 – user5702568

相关问题