假设我们有一个非常简单的脚本,可以打印如下变量名。
Dim ii as String
ii = "This is a test"
MsgBox(ii)
脚本是通过按下excel功能区中的按钮来运行的,该按钮链接到VBA代码。
现在有任何可能的方法可以直接在excel功能区中设置变量“ii”的值。在VBA脚本中添加一些用户友好的自定义?优选地,如果用户可以右键单击按钮,则能够在那里更改变量,然后excel将记住所有工作簿的此更改。
答案 0 :(得分:0)
您可以使用以下Microsoft tutorial向功能区添加按钮,并让它调用VBA宏。
全局变量必须存储在标准模块或文档模块中。如果在打开工作簿时需要初始化它,无论它存储在何处,都必须在WorkbookOpen事件期间或通过此事件调用的宏设置该值。以防万一,此处是指向Chip Pearson event tutorial的链接。
如果需要在会话(使用)之间保留变量的值,则必须将其保存到工作表中的单元格中。隐藏或非常隐藏的工作表可以很好地用于此目的。如果在会话之间重置该值,则可以对模块中的默认值进行硬编码。
这应该是你需要的全部。您可能必须使用一些宏来获得您正在寻找的确切结果。最终,这将取决于您希望实现的目标。
答案 1 :(得分:0)
如果您希望数据对于特定机器或用户是持久的。将用户数据存储在注册表中。
只需在宏的开头加载注册表。提供一个使用文本框,组合框,复选框或其他选项的选项,以允许用户除默认值外或自行更改,然后将选择保存回注册表。
这样,它可以针对特定用户进行个性化设置。
典型功能是
注册表值存储在一个固定的位置(我不认为可以在本地VBA中更改此值)。如果您希望通过Windows注册表编辑器查询设置,请使用此键:
"MyComputer\HKEY_CURRENT_USER\Software\VB and VBA Program Settings\"
要读取注册表值,请使用以下VBA代码的修改版本
GetSetting("MyApp","MySection","MyKey","My Default Value")
要写入注册表值:
SaveSetting("MyApp","MySection","MyKey","MyValue")
有关更多信息,请参见Better Solutions
标记