ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 405|回复: 3

利用VBA的SaveSetting方法在注册表保存信息

[复制链接]

TA的精华主题

TA的得分主题

发表于 2024-7-3 20:57 | 显示全部楼层 |阅读模式
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
本帖最后由 lss001 于 2024-7-4 11:24 编辑

'注册表保存信息位置:
'HKEY_CURRENT_USER\Software\VB and VBA Program Settings

Sub saves() '保存信息到注册表
  k = Sheet1.Range("A1").Value '单元格信息:值
  VBA.SaveSetting "myapp", "myprogram", "value", k
End Sub

Sub gets() '从注册表获取信息
  '获取全部
  'arr = VBA.GetAllSetting("myapp", "myprogram")
  '获取单项
  x = VBA.GetSetting("myapp", "myprogram", "value")
End Sub

Sub dels() '从注册表删除信息
  On Error Resume Next
  '删除全部
  'VBA.DeleteSetting "myapp", "myprogram"
  '删除单项
  VBA.DeleteSetting "myapp", "myprogram",
  "value"
End Sub


参考以下Vba帮助链接:

https://learn.microsoft.com/zh-cn/office/vba/Language/Reference/User-Interface-Help/savesetting-statement





TA的精华主题

TA的得分主题

发表于 2024-7-3 23:04 | 显示全部楼层
这个方法确实很方便

TA的精华主题

TA的得分主题

发表于 2024-7-4 12:35 | 显示全部楼层


从以前笔记整理,借楼主帖子,分享下说明

写入注册表作用:注册表中创建键名和对应键值,即键值对形式存储参数
值类型:文本
时效性:随系统

1 保存值到注册表
  1. SaveSetting 程序名, 节名, 键名, 键值
复制代码

执行后,所设 "键值" 将被保存在 "HKEY_CURRENT_USER\Software\VB and VBA Program Settings\程序名\键名" 下
有则覆盖,无则创建,不会报错
四参"键值",可写各种数据类型,最终以字符串保存

2.1 读取单项 (键)
  1. GetSetting(程序名, 节名, 键名)
复制代码

返回类型为字符串
注册表项时,返回空字符串"",不会报错
2.2 读取全部 (节)  
  1. GetAllSettings(程序名, 节名)
复制代码

返回(0 to n, 0 to 1)字符串二维数组
无注册表项时,则返回空字符串"",不会报错

3.1 删除单项 (键)
  1. DeleteSetting 程序名, 节名, 键名
复制代码

无注册表项时删除会报错

其他
"存储参数" 除利用注册表,如果不存单元格,
网友也可考虑去用 name名称、宏4.0名称、文档属性等等等
值类型分别为:文本、多种类型、多种类型
时效性分别为:随文件、随application生命周期、随文件
隐秘性分别为:不可见、不可见、简单不可见
都相当于"键值对"的存储


(如有错误纰漏铁子们指正补充)

评分

2

查看全部评分

TA的精华主题

TA的得分主题

发表于 2024-8-14 09:40 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
cidanji 发表于 2024-7-4 12:35
从以前笔记整理的,借楼主帖子,分享下说明

写入注册表作用:注册表中创建键名和对应键值,即键值对 ...

大哥,分享一下 name名称、宏4.0名称的实现方法吧
文档属性是这样的吗?
  1. ThisWorkbook.CustomDocumentProperties.Add Name:="MyParam", _
  2.     Description:="My Parameter", Value:="MyValue", Type:=msoPropertyTypeString
  3. Dim myParam As String
  4. myParam = ThisWorkbook.CustomDocumentProperties("MyParam").Value
复制代码

您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-18 12:32 , Processed in 0.040437 second(s), 10 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表