Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
是否可以使用VBA代码编辑命名excel对象的值属性?_Vba_Excel - Fatal编程技术网

是否可以使用VBA代码编辑命名excel对象的值属性?

是否可以使用VBA代码编辑命名excel对象的值属性?,vba,excel,Vba,Excel,我希望将递增变量存储在名称管理器中,而不是将其存储在电子表格中的某个位置,以便按名称对其进行操作。上面的代码对我来说似乎很直观,但我得到了一个类型不匹配。有什么想法吗?谢谢你能提供的帮助 -Drake如果您稍微修改一下代码,您将看到单个数字的值实际上存储为字符串,因此您试图添加一个字符串,而Excel对此并不满意。您可以尝试以下方法: ThisWorkbook.Names("numWorkersCompEntries").Value = ThisWorkbook.Names("numWorke

我希望将递增变量存储在名称管理器中,而不是将其存储在电子表格中的某个位置,以便按名称对其进行操作。上面的代码对我来说似乎很直观,但我得到了一个类型不匹配。有什么想法吗?谢谢你能提供的帮助


-Drake

如果您稍微修改一下代码,您将看到单个数字的值实际上存储为字符串,因此您试图添加一个字符串,而Excel对此并不满意。您可以尝试以下方法:

 ThisWorkbook.Names("numWorkersCompEntries").Value = ThisWorkbook.Names("numWorkersCompEntries").Value + 1

在我的测试表上似乎有预期的结果…只要确保你有一个命名的Foo范围来测试。显然,可以根据您的情况进行调整,但希望它能让您朝着正确的方向开始。

非常感谢!VBA将1视为字符串有实际原因吗?我以前使用过Ruby和JavaScript,在ints中从来没有遇到过这样的问题。@user2707702不幸的是,我不知道VBA为什么会这样做。希望有一个比我更精通的人会出现,并且能够对它有所启发。
Sub test()
Dim namedValue As Variant

namedValue = ThisWorkbook.Names("Foo").Value

ThisWorkbook.Names("Foo").Value = Mid(namedValue, 2, Len(namedValue)) + 1

Debug.Print ThisWorkbook.Names("Foo").Value
End Sub