VBA:设置范围名称与stringvariables
我有一个似乎很简单的问题,但我无法弄清楚我的代码有什么问题。
Dim x As Long, y As Long, z As Long Dim ContractName As String Dim RangeToName As Range y = Cells(1, 1).End(xlToRight).Column For x = 1 To y ContractName = Cells(1, x) z = Cells(Rows.count, x).End(xlUp).Row Set RangeToName = Range(Cells(2, x), Cells(z, x)) RangeToName.Name = ContractName Next x End Sub
我试图根据“ContractName”单元中的文本来命名范围,每个x都会改变它。
但“RangeToName.Name = ContractName”行给我一个运行时450错误。
然而,如果我在该行中添加任何其他文本,例如“RangeToName.Name =”test“&ContractName”一切正常,我的范围命名为包含“ContractName”单元格中文本的完整string…
我错过了什么?
干杯
名称必须以字母或下划线开头,不能包含空格,并且不能与Excel中的保留关键字相同。
换一种说法:
名字不能以数字开头。
名字不能是“这是一个testing”
例如“KL2000”不能用作名称,因为会与单元格参考KL2000冲突。 但是“_KL2000”可以使用。
您应该直接使用Excel应用程序,您将使用VBA做什么。 如果你用“KL2000”这样的名字做了这个,你得到了一个有意义的错误信息。