好的,
我希望我的excel应用程序中有一些东西可以保留,就像在闲逛时一样,我想要比全局变量更可靠的东西,因为在编辑代码时会重置这些内容,或者说应用程序停止运行。 (经常发生)
所以我一直在使用形状,它们工作得很好,但它们依赖于至少一个工作表总是不变的吗?因为形状与纸张相关联,如果具有形状的纸张被删除,形状就会消失。并且用户经常删除/添加新的工作表,没有一张总是不变的工作表,他们也不会让我强迫它们。
那么有没有办法让形状与工作簿而不是纸张相关联?那么如果一张纸上的形状被删除,那么形状就不会消失。
任何帮助或其他建议
再次感谢:@David Zemens为我提供了解决方案,以防万一有人看到这一点,添加命名范围的代码是:workbook.Names.Add Name:=“Name” ,RefersTo:=“value” - 你需要添加referto或它会出错。你可以输入像“temp”这样的临时值并稍后设置值,但是你必须在添加时引用
答案 0 :(得分:1)
您可以使用命名范围在会话之间保存字符串数据。它们可以是工作簿或特定工作表的子项。你会想要前者。从公式功能区,名称管理器,定义名称,如:
然后,在您的VBA中,您可以检索并设置此范围的值,如:
Public Const CSVFileName as String = "sFileName"
Sub YourSubroutine()
Dim nm As Name
Set nm = ActiveWorkbook.Names(CSVFileName)
'Get the value:
MsgBox Replace(Replace(nm.Value, "=", vbNullString), """", vbNullString)
'Set the value:
nm.Value = "C:\documents\filename.CSV"
End Sub
与命名范围关联的值在运行时之后仍然存在,它基本上是工作簿的属性。
我现在将发布此内容供您查看。我将尝试编写一个XML客户数据示例,稍后将修改我的答案。