如何强制 Excel 加载项在首次启动时加载默认设置
How to force Excel add-in to load default settings on FIRST start up
我正在开发一个小型 Excel 插件供公司内部使用。我对某些程序的设置有疑问。
我的宏中的一些变量具有可修改的设置,例如,将数字格式更改为用户定义格式的宏,或某些宏的快捷方式。我有专门用于这些设置的用户表单,我 save/read 他们 to/from Windows 使用这些表单进行注册。用户还可以设置默认设置 - 这是一个带有 SaveSetting/GetSetting 个程序的简单系统。
但是,我在启动时加载设置时遇到问题。我需要加载项在第一次启动时加载默认设置,然后在下次加载项启动时加载用户设置。我知道如何加载默认设置,但我想不出一种方法来加载默认设置一次,然后加载用户修改的设置(更改或默认,取决于他们通过上述用户表单的选择)。现在我只知道如何在每次加载加载项时加载默认设置...
有没有人遇到过这样的问题愿意帮忙?
第一次加载加载项时,它会在注册表中创建一个键,其值为 True
。加载加载项时,会在 Workbook_Open()
事件中检查该特定键。如果它不存在(或者它是 False
如果您有时需要重置加载项),将加载默认设置...
Private Sub Workbook_Open()
Dim regValue As String, MyApp As String, myKey As String, keyValue As String
MyApp = "MyAddin": myKey = "add_default": keyValue = "Default"
regValue = GetSetting(MyApp, myKey, keyValue, "No value")
If regValue <> "No value" Then
If CBool(regValue) = True Then GoTo Continue
'load default settings
SaveSetting MyApp, myKey, keyValue, "True"
Else
'load default settings
SaveSetting MyApp, myKey, keyValue, "True"
End If
Continue:
'your code without loading default
'.....
End Sub
由于我目前的特权,我无法对您的 post 发表评论。
但是看看你的问题:
- 第一次,您可以将默认设置存储在加载项本身中,您将在加载加载项的事件
ThisAddIn_Startup
中调用。
- 然后您根据需要以两种方式存储设置:
2.1.如果它是与其他人共享的常规设置,那么当管理员设置初始设置时,您最好使用 INI 文件 来存储设置。
2.2.如果是每个用户设置,那么您最好将它们存储在注册表中:
2.2.a。在第一次设置时创建密钥的位置
2.2.b。使用最近创建的密钥存储用户设置。
- 然后下次加载应用程序时,您使用
ThisAddIn_Startup
检查密钥是否已创建:
3.1.如果是,那么您只需读取存储的设置。
3.2.如果否,那么您将再次开始第 2 步。
希望对您有所帮助!
我正在开发一个小型 Excel 插件供公司内部使用。我对某些程序的设置有疑问。
我的宏中的一些变量具有可修改的设置,例如,将数字格式更改为用户定义格式的宏,或某些宏的快捷方式。我有专门用于这些设置的用户表单,我 save/read 他们 to/from Windows 使用这些表单进行注册。用户还可以设置默认设置 - 这是一个带有 SaveSetting/GetSetting 个程序的简单系统。
但是,我在启动时加载设置时遇到问题。我需要加载项在第一次启动时加载默认设置,然后在下次加载项启动时加载用户设置。我知道如何加载默认设置,但我想不出一种方法来加载默认设置一次,然后加载用户修改的设置(更改或默认,取决于他们通过上述用户表单的选择)。现在我只知道如何在每次加载加载项时加载默认设置...
有没有人遇到过这样的问题愿意帮忙?
第一次加载加载项时,它会在注册表中创建一个键,其值为 True
。加载加载项时,会在 Workbook_Open()
事件中检查该特定键。如果它不存在(或者它是 False
如果您有时需要重置加载项),将加载默认设置...
Private Sub Workbook_Open()
Dim regValue As String, MyApp As String, myKey As String, keyValue As String
MyApp = "MyAddin": myKey = "add_default": keyValue = "Default"
regValue = GetSetting(MyApp, myKey, keyValue, "No value")
If regValue <> "No value" Then
If CBool(regValue) = True Then GoTo Continue
'load default settings
SaveSetting MyApp, myKey, keyValue, "True"
Else
'load default settings
SaveSetting MyApp, myKey, keyValue, "True"
End If
Continue:
'your code without loading default
'.....
End Sub
由于我目前的特权,我无法对您的 post 发表评论。
但是看看你的问题:
- 第一次,您可以将默认设置存储在加载项本身中,您将在加载加载项的事件
ThisAddIn_Startup
中调用。 - 然后您根据需要以两种方式存储设置: 2.1.如果它是与其他人共享的常规设置,那么当管理员设置初始设置时,您最好使用 INI 文件 来存储设置。 2.2.如果是每个用户设置,那么您最好将它们存储在注册表中: 2.2.a。在第一次设置时创建密钥的位置 2.2.b。使用最近创建的密钥存储用户设置。
- 然后下次加载应用程序时,您使用
ThisAddIn_Startup
检查密钥是否已创建: 3.1.如果是,那么您只需读取存储的设置。 3.2.如果否,那么您将再次开始第 2 步。
希望对您有所帮助!