Excelmacros循环列指定单元格名称框

我想用一个相邻单元格的值填充单元格的名称框。 这个macros的作品。

Sub NameBox() ' populates name box w/ value from adjacent cell ActiveCell.Name = ActiveCell.Offset(0, -1).Value ' steps down to next cell ActiveCell.Offset(1, 0).Select End Sub 

我分配了一个关键笔划,并遍历列中的每个单元格,这很容易,但我认为可以通过一个循环来改进。

我试过这个。

 Sub NameBoxLoop() Dim cel As Range For Each cel In Range("C:C").Cells If cel.Value <> "" Then cel.Name = cel.Offset(0, -1).Value End If Next cel End Sub 

但是我得到以下debugging错误

cel.Name =应用程序定义或对象定义的错误

循环逻辑看起来是正确的,如果我用cel.Valuereplacevariablescel.Name循环将完成。

search没有提供cel.Name错误的答案。 任何帮助解决这个错误,表示赞赏。

你的公式的作品。 但是,也许你的环境不是最佳的,因为你没有纠错 – 名称有限制。

所以我猜测你在B列中没有值,或B列中的值已经被用作其他单元格的名称。

在这两种情况下,你的循环会中断。

试试这个循环,但考虑错误certificate你的代码:

 Sub NameBoxLoop() On Error Resume Next Dim cel As Range For Each cel In Range("C:C").Cells If cel.Value <> "" Then cel.Name = cel.Offset(0, -1).Value End If Next cel end sub 

编辑:

作为一个build议,你可能要考虑使用Names列表。

这里是一个excel帮助的例子:

 ActiveWorkbook.Names.Add Name:="test", RefersTo:="=sheet1!$a$1:$c$20" 

在这里的一些目标成员:

  • 项目
  • 计数