VBA:使用字符串变量设置范围名称

标签 vba excel

我遇到了一个看似简单的问题,但我无法弄清楚我的代码有什么问题。

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”单元格中的文本。 .

我错过了什么?

干杯

最佳答案

名称必须以字母或下划线开头,不得包含空格,并且不得与 Excel 中的保留关键字相同。

例如:

名称不能以数字开头。

名称不能是“这是一个测试”

名称不能是“A1”

“KL2000”不能用作名称,因为会与单元格引用 KL2000 冲突,但“_KL2000”可以使用。

您应该始终直接在 Excel 应用程序中尝试使用 VBA 执行的操作。如果您使用“KL2000”之类的名称执行此操作,您将收到一条有意义的错误消息。

关于VBA:使用字符串变量设置范围名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29098242/

相关文章:

vba - 如何使用VBA对同一范围进行条件格式化

java - 如何迭代或读取选定列上的所有行

excel - 如何在 UIPath 中获取文本和数据抓取并一起插入到 Excel 中

vba - 如何使用 vba excel 将字符串变量发送到命令提示符?

vba - 删除今天未在 VBA 中保存的文件夹中的所有文件

vba - 交换字符在单元格中的位置

arrays - 在 VBA 中确定未初始化数组的类型

excel - 如何为 Excel MsgBox 正确格式化 Ascii 文本艺术

excel - 更改整个工作表的背景颜色

php - 如何在 PHPExcel 构建的 xlsx 中附加 VBA 代码?