ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] 求助GetSetting,SaveSetting 函数的用法

[复制链接]

TA的精华主题

TA的得分主题

发表于 2022-11-30 12:33 | 显示全部楼层 |阅读模式
Application.DisplayAlerts = False
   Application.ScreenUpdating = False
   Dim ReValue As Date
   Dim name As String
   Dim dd As Variant
   name = "schz"

   ReValue = GetSetting(name, "MainKey", "DateValue", "2022-5-1")
   dd = DateDiff("d", ReValue, Date)
   If dd = 0 Then
     SaveSetting name, "MainKey", "dateValue", Date
   End If

各位大神,下面这二个函数的用法我没有看懂,有谁能告诉我一下啊,不胜感激~~~
ReValue = GetSetting(name, "MainKey", "DateValue", "2022-5-1")
SaveSetting name, "MainKey", "dateValue", Date

TA的精华主题

TA的得分主题

发表于 2022-11-30 13:07 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
学会问度娘啊。

GetSetting 函数
项目
2022/04/07
1 个参与者

反馈
从 Windows 注册表中的应用程序条目或(在 Macintosh 上)应用程序的初始化文件的信息中返回键设置值。

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

GetSetting 函数语法具有以下 命名参数:

Part        说明
appname        必需。 包含请求其键设置的应用程序或项目的名称的字符串表达式。 在 Macintosh 中,这是 System 文件夹下 Preferences 文件夹中的初始化文件的文件名。
section        必需。 包含键设置所在部分的名称的字符串表达式。
key        必需。 包含要返回的键设置的名称的字符串表达式。
default        可选。 包含当键设置中未设置任何值时要返回的值的表达式。 如果省略,则假定 default 是长度为零的字符串 ("")。

SaveSetting 语句
项目
2022/04/11
1 个参与者

反馈
在 Windows 注册表的应用程序条目中保存或创建应用程序项,或在 Macintosh 上,在应用程序的初始化文件中保存或创建信息。

语法
SaveSetting appname, section, key, setting

“SaveSetting”语句语法具有以下命名参数:

Part        说明
appname        必需。 包含该应用程序的名称的字符串表达式或该设置适用的项目。 在 Macintosh 上,这是“系统”文件夹的“首选项”文件夹中的初始化文件的文件名。
section        必需。 包含保存关键设置的节的名称的字符串表达式。
key        必需。 包含正在被保存的关键设置的名称的字符串表达式。
setting        必需。 包含将“键”设置为的值的表达式。

TA的精华主题

TA的得分主题

发表于 2022-11-30 14:07 | 显示全部楼层
GetSetting(name, "MainKey", "DateValue", "2022-5-1"):在VBA默认项下创建name值的子项,再在其下面创建子项"MainKey",再在其下创建数值,名称为"DateValue",数据为:"2022-5-1"

TA的精华主题

TA的得分主题

发表于 2022-11-30 14:13 | 显示全部楼层
度娘:

Windows注册表是一个数据库,用于存储与计算机不同方面相关的设置,例如用户设置、应用程序设备、硬件设置等等。VB和VBA中提供了用于读写注册表的两个函数:GetSetting和SaveSetting。利用这两个函数可以与注册表直接交互,这不仅允许我们获取其它程序和硬件的信息,而且也能够使我们选择应用程序中的重要信息并将其存储在注册表中。但是这两个函数仅能访问下面的注册表句柄键:
    HKEY_CURRENT_USER\Software\VB and VBA Program Settings
  
一、GetSetting

功能:从Windows 注册表中的应用程序项目返回注册表项设置值(从注册表读取数据)。

语法:GetSetting(appname, section, key[, default])

GetSetting 函数的语法具有下列命名参数:

appname 必要。字符串表达式,包含应用程序或工程的名称,要求这些应用程序或工程有注册表项设置。
section 必要。字符串表达式,包含区域名称,要求该区域有注册表项设置。
key 必要。字符串表达式,返回注册表项设置的名称。
default 可选。表达式,如果注册表项设置中没有设置值,则返回缺省值。如果省略,则 default 取值为长度为零的字符串 ("")。

说明:如果 GetSetting 的参数中的任何一项都不存在,则 GetSetting 返回 default 的值。

二、SaveSetting

功能:在 Windows 注册表中保存或建立应用程序项目(把信息写入注册表)。

语法:SaveSetting appname, section, key, setting

SaveSetting 语句的语法具有下列命名参数:

appname 必要。字符串表达式,包含应用程序或工程的名称,对这些应用程序或工程使用设置
section 必要。字符串表达式,包含区域名称,在该区域保存注册表项设置。
key 必要。字符串表达式,包含将要保存的注册表项设置的名称。
setting 必要。表达式,包含 key 的设置值。


SaveSetting 语句示例
下列示例首先使用 SaveSetting 语句来建立 Windows 注册区(或 16 位 Windows 平台的.ini 档)里 MyApp 应用程序的项目,然后使用 DeleteSetting 语句来将之删除。

' 在注册区中添加一些设置值。
SaveSetting appname := "MyApp", section := "Startup", _
              key := "Top", setting := 75
SaveSetting "MyApp","Startup", "Left", 50
' 删除区段及所有的设置值。
DeleteSetting "MyApp", "Startup



可以使用注册表来存储应用程序的初始和配置的设置。VBA允许读写下列注册表路径中的注册表设置:
\HKEY_CURRENT_USER\Software\VB and VBA Program Settings\{子键}
要在这个注册表路径中读取注册表设置,使用GetSetting函数。要写入注册表设置到该注册表路径中,使用SaveSetting函数。注意,不正确地修改注册表会导致严重的后果,甚至需要重新安装操作系统。
GetSetting函数和SaveSetting函数的语法如下:
SaveSetting(AppName,Section,Key,Setting)
GetSetting(AppName,Section,Key[,Default])
其中:

  • 参数AppName必需,String类型,指定VB and VBA Program Settings键的子键;
  • 参数Section必需,String类型,在参数AppName中指定的键的子键;
  • 参数Key必需,String类型,在参数Section中指定的键的值;
  • 参数Setting必需,String类型或数值型,存储在参数Key指定的值中的一块数据;
  • 参数default可选,String类型,指定当参数Key中没有设置值时返回的数据。

使用DeleteSetting函数删除子键或值,其语法为:
DeleteSetting(AppName[,Section[,Key]]
其中的参数与上述相同。
下面的示例代码创建带有两个值的子键,列出它们的值,然后删除子键并再次试图列出它们的值。



  • '演示VBA SaveSetting函数和GetSetting函数的使用



  • Public Sub TestRegistryFunctions()



  •     '创建带有两个值的子键



  •     SaveSetting AppName:="MyApp", Section:="MySection", _



  •         Key:="MyKey", Setting:="MySetting"



  •     SaveSetting AppName:="MyApp", Section:="MySection", _



  •         Key:="MyKey2", Setting:="MySetting2"







  •     '显示"MySetting"和"MySetting2"



  •     MsgBox Prompt:=GetSetting(AppName:="MyApp", _



  •         Section:="MySection", Key:="MyKey")



  •     MsgBox Prompt:=GetSetting(AppName:="MyApp", _



  •         Section:="MySection", Key:="MyKey2")







  •     '删除子键



  •     DeleteSetting AppName:="MyApp"







  •     '显示空字符串



  •     MsgBox Prompt:=GetSetting(AppName:="MyApp", _



  •         Section:="MySection", Key:="MyKey")



  •     MsgBox Prompt:=GetSetting(AppName:="MyApp", _



  •         Section:="MySection", Key:="MyKey2")



  • End Sub







TA的精华主题

TA的得分主题

发表于 2022-11-30 14:14 来自手机 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2022-11-30 14:40 | 显示全部楼层
SaveSetting name, "MainKey", "dateValue", Date
这是将信息保存到注册表,其中前两个参数是保存的位置,参数三是项目名称,参数四是值。
执行完这一语句后,可打开注册表查看。
按Win+R打开运行窗口,输入Regedit打开注册表编辑器。


依次展开:HKEY_CURRENT_USER\Software\VB and VBA Program Settings\schz,再点击MainKey,可在右侧窗口看到数据:
"dateValue"="2022/11/30 星期三"


QQ截图20221130151838.png

ReValue = GetSetting(name, "MainKey", "DateValue", "2022-5-1")
这是读取注册表信息,将读取的数据存储到变量ReValue,如果还没有保存,未找到指定位置的DateValue,则将后面参数四的值存储到变量ReValue。
参数四可省略,当省略时,如果找不到,则将一空文本值赋给变量ReValue:
ReValue = GetSetting(name, "MainKey", "DateValue")


TA的精华主题

TA的得分主题

 楼主| 发表于 2022-12-2 22:41 | 显示全部楼层

TA的精华主题

TA的得分主题

 楼主| 发表于 2022-12-2 22:42 | 显示全部楼层
tennicse 发表于 2022-11-30 14:13
度娘:

Windows注册表是一个数据库,用于存储与计算机不同方面相关的设置,例如用户设置、应用程序设备 ...

谢谢 大神!

TA的精华主题

TA的得分主题

 楼主| 发表于 2022-12-2 22:43 | 显示全部楼层
tennicse 发表于 2022-11-30 14:14
详细讲解,太长了。里面有具体的例子

https://blog.csdn.net/iamlaosong/article/details/20477383

谢谢 大神!

TA的精华主题

TA的得分主题

 楼主| 发表于 2022-12-2 22:43 | 显示全部楼层
tennicse 发表于 2022-11-30 14:13
度娘:

Windows注册表是一个数据库,用于存储与计算机不同方面相关的设置,例如用户设置、应用程序设备 ...

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

本版积分规则

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

GMT+8, 2024-11-20 16:31 , Processed in 0.042032 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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