Excel加载项配置变量并保存

时间:2016-07-28 15:40:07

标签: excel vba excel-vba excel-2010 add-in

我被要求创建一个Excel加载项,供人们将一系列xml文档从Excel加载到Excel电子表格中。我将编写一个加载项并发布其位置供人们下载他们自己的本地副本以供使用。我希望每个最终用户都能为VBA配置一些常量,以定制他们的体验和功能。

我认为有一个按钮来运行加载项和另一个名为"配置"的按钮会很不错。或其他东西,它会编辑VBA中某些变量的值,并保存新值,以便下次用户打开Excel时,仍然会为它们配置加载项。这样的事情是否可能,你对于我应该走哪条道路有一些建议吗?

有没有办法让变量持续存在?我想我需要在外接程序的本地版本上保存值,但如果是这样,存储一组参数的最佳方法是什么?

任何一般性建议都是最受欢迎的;我还没有写过加载项,还处于设计阶段。

1 个答案:

答案 0 :(得分:2)

我不建议使用单元格存储设置,因为用户可能会将其设置为F。

但VBA确实支持注册表编辑。

SaveSetting "Macro name", "Settings", "Username", "John Doe"

上述代码将在名为Username的appname和John Doe部分中保存名为Macro name且名称为Settings的设置或注册表项。

因此,总之,您只需在保存新设置时更改最后两个字符串。前两个应该(为了方便你)始终保持不变。

密钥将存储在:HCU \ Software \ VB和VBA程序设置\您的应用程序名称\

要获得您使用的设置:

GetSetting("Macro name", "Settings", "Username")

另一种解决方案是使用txt文件 它仍然比细胞更好,但不如上面提到的注册表那么好。

settings = "Username=John Doe, Worktitle=Janitor"
MyFile = "C:\myapp\settings.txt"
fnum = FreeFile()
Open MyFile For Output As #fnum
Print #fnum, settings
Close #fnum

现在你有一个txt文件,其中包含你可以阅读和解析的设置。