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"
在这里的一些目标成员:
- 加
- 项目
- 计数