在用户PC上存储设置

Zik*_*ato 5 excel vba excel-vba

我有一个带有脚本的Excel工作表,它保存在每个用户都可以访问的远程位置.该宏将允许用户选择目标文件夹并在其中创建一些文件.

现在我希望我的脚本能够记住每个用户的最后选择路径.我将来可能需要存储更多路径(变量).

我的想法是将这些数据存储Environ("AppData")在每个用户计算机上的某个位置.离线cookie的排序.

但是什么是最简单的创建方法(如果它不存在)从多个读取和更新文件,我想轻松访问?

我已经尝试将其保存在记事本中,但索引和解析是噩梦.

Mat*_*ewD 13

将设置保存到注册表.

SaveSetting(appname,section,key,setting)

SaveSetting "AffectedTerminals", "frmMain", "LastDir", szPathname
Run Code Online (Sandbox Code Playgroud)

然后,您可以在下次运行应用程序时使用getsetting检索设置,以便您可以使用它.

GetSetting(appname,section,key [,default])

Dim szLastDir As String
szLastDir = GetSetting("AffectedTerminals", "frmMain", "LastDir", "P:\AttEngineering")
Run Code Online (Sandbox Code Playgroud)

编辑:解释了appname和section参数.
appname和section可以是你想要的任何东西.描述设置的东西是最好的.在上面的代码中,AffectedTerminals是我的应用程序的名称.因此,如果您有一个处理IT发票的电子表格,那么您可以将appname称为"ITinvoices".该部分只是regestry条目的子部分(一种子目录).

该设置将保存在此位置

HKEY_CURRENT_USER/Software/VB和VBA Program Settings/appname/Section/key/value /

因此对我来说它被保存为 在此输入图像描述

保存设置功能

AppName的
必需.字符串表达式,包含应用该设置的应用程序或项目的名称.

部分
要求.字符串表达式,包含要保存密钥设置的部分的名称.

密钥
要求.字符串表达式,包含要保存的键设置的名称.

设置
必需.包含要设置Key的值的表达式.

GetSetting函数

appname
必需.字符串表达式,包含请求其密钥设置的应用程序或项目的名称.

部分
必需.字符串表达式,包含找到键设置的部分的名称.

密钥
必需.字符串表达式,包含要返回的键设置的名称.

默认
可选.如果在键设置中未设置任何值,则包含要返回的值的表达式.如果省略,则假定default为零长度字符串("").