是否可以使用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