2015-10-06 57 views
4

我有一个带有脚本的Excel工作表,它保存在每个用户都可以访问的远程位置。 这个宏将让用户选择一个目标文件夹并在里面创建一些文件。在用户PC上存储设置

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

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

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

我试过将它保存在记事本中,但索引和解析是噩梦。

+0

创建一个隐藏的工作表,你可以为每个用户添加条目,可以检索与'ENVIRON(“用户名”)的用户名' – Raugmor

+1

SaveSetting/GetSetting是存储命名值(注册表) –

+1

当它的最简单的方法在远程位置,它被设置为只读。即便如此,电子表格也需要共享(这不是用户验证的),它会要求在每次使用后保存更改。 – Zikato

回答

9

将设置保存到注册表中。

SaveSetting(appname中,部分键,设定)

SaveSetting "AffectedTerminals", "frmMain", "LastDir", szPathname 

然后你可以检索与您的应用程序运行,因此你可以用它下一次getsetting设置。

GetSetting(appname中,部分中,键[默认])

Dim szLastDir As String 
szLastDir = GetSetting("AffectedTerminals", "frmMain", "LastDir", "P:\AttEngineering") 

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

设置将在此locatioin保存

HKEY_CURRENT_USER /软件/ VB和VBA程序设置/应用程序的名字/科/键/值/

所以对于矿山它保存为 enter image description here

SaveSetting功能

AppName
必填。字符串表达式,其中包含设置应用于的应用程序或项目的名称。

部分
必填。字符串表达式,其中包含正在保存密钥设置的部分的名称。

密钥
必填。包含正在保存的密钥设置名称的字符串表达式。

设置
必需。包含正在设置Key的值的表达式。

GetSetting功能

APPNAME
必需。字符串表达式,其中包含请求键设置的应用程序或项目的名称。

部分
必需。字符串表达式,其中包含找到密钥设置的部分的名称。


必填。包含要返回的密钥设置的名称的字符串表达式。

默认
可选。包含要在键设置中未设置值时返回的值的表达式。如果省略,则默认为零长度字符串(“”)。

+0

这看起来不错,我只是有一个关于参数“appname”和“部分”的问题。因为我的脚本保存在excel中,appname param是excel文件的完整路径吗? sectioname可以是任何东西,或者是否有逻辑?谢谢! – Zikato

+0

不,它可以是任何你想要的。描述设置的东西是最好的。在上面的代码中AffectedTerminals是我的应用程序的名称。因此,如果您有一个处理IT发票的电子表格,那么您可以调用应用程序“ITinvoices”。该部分只是regestry条目的子部分。我会在一分钟内回答我的答案。 – MatthewD

+1

很好的答案,谢谢!如果在接受之前有其他选择,我会等待几天。 – Zikato