电脑教程
位置:首页>> 电脑教程>> office教程>> excel VBA 如何读取和写入 INI 文件

excel VBA 如何读取和写入 INI 文件

  发布时间:2023-01-25 17:47:58 

标签:VBA教程

我们写一些小代码时,有时需要将部分配置信息保存在用户的电脑上,一般可以采取保存在注册表,XML 文件和 INI 文件等方法。这几种方法各有优缺点,我觉得当配置信息简单时,保存在 INI 文件还是很高效的。这里提供一段小代码,用于读取和写入 INI 文件

excel VBA 如何读取和写入 INI 文件
excel VBA 如何读取和写入 INI 文件

具体代码:

Option Explicit
#If Win64 Then
Public Declare PtrSafe Function GetPrivateProfileString _
Lib "kernel32" Alias "GetPrivateProfileStringA" ( _
ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpDefault As String, _
ByVal lpReturnedString As String, ByVal nSize As Long, ByVal lpFileName As String) As Long
Public Declare PtrSafe Function WritePrivateProfileString _
Lib "kernel32" Alias "WritePrivateProfileStringA" ( _
ByVal lpApplicationName As String, ByVal lpKeyName As Any, _
ByVal lpString As Any, ByVal lpFileName As String) As Long
#Else
Public Declare Function GetPrivateProfileString _
Lib "kernel32" Alias "GetPrivateProfileStringA" ( _
ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpDefault As String, _
ByVal lpReturnedString As String, ByVal nSize As Long, ByVal lpFilename As String) As Long
Public Declare Function WritePrivateProfileString _
Lib "kernel32" Alias "WritePrivateProfileStringA" ( _
ByVal lpApplicationName As String, ByVal lpKeyName As Any, _
ByVal lpString As Any, ByVal lpFilename As String) As Long
#End If

Public Const MAXCOUNT As Long = 256

'********************************************************************
'用途: 读取指定的键值
'返回值: 指定的键值
'参数名 说明
'FileName Ini 文件全名(含路径)
'Section 节点的名称
'Key 键名
'********************************************************************
Public Function ReadStringFromIni(ByVal FileName As String, ByVal Section As String, ByVal Key As String) As String
Dim x As Long
Dim xBuff As String * MAXCOUNT
GetPrivateProfileString Section, Key, "", xBuff, MAXCOUNT, FileName
x = InStr(xBuff, Chr(0))
ReadStringFromIni = Trim(Left(xBuff, x - 1))
End Function

'********************************************************************
'用途: 写入指定的键值
'参数名 说明
'FileName Ini 文件全名(含路径)
'Section 节点的名称
'Key 键名
'Value 需要写入的键值
'********************************************************************
Public Sub WriteStringToIni(ByVal FileName As String, ByVal Section As String, ByVal Key As String, ByVal Value As String)
Dim xBuff As String * MAXCOUNT
xBuff = Value + Chr(0)
WritePrivateProfileString Section, Key, xBuff, FileName
End Sub

注意:代码可用于 32 位和 64 位 Office; 请将下载后的文件解压到同一文件夹

1文件名称1下载链接
INIFileReadWrite.ziphttp://pan.baidu.com/s/1hqCCVdi

excel VBA 如何读取和写入 INI 文件的下载地址:


     

0
投稿

猜你喜欢

  • 要统计Excel单元格内某字符出现的次数,具体使用公式如下:=LEN(计算出现某字符的字符串或单元格)-LEN(SUBSTITUTE(计算出
  • 在使用Word的时候,我们很有可能会用到Excel的数据。怎样将Excel表格导入Word呢?下面分享给大家一个方法。第一步:开启WPS软件
  • 有时候,我们为了某些需要,必须把工作表的行列进行转置的方式显示。重新输入很浪费时间,那么excel如何实现行与列的转置?下面小编就为大家详细
  • 在Excel中,如果要检验数据是否为非文本,可以使用ISNONTEXT函数检验数据是否为非文本。Excel2007可使用ISNONTEXT函
  • 大家都知道我们在win7系统中打开txt和word文档的时候,默认背景颜色都是白色的,有时候天天要对着电脑白色看着比较不好,那么为了更好的保
  • 什么是虚拟键盘?虚拟键盘可以显示在屏幕上,用鼠标点击即可实现输入功能。当你的键盘突然不灵或者损坏的时候就可以开启虚拟键盘应急。那就有人问了如
  • word怎么删除表格空白页?针对这个问题小编今天给大家分享下详细的操作方法,一起来学习下吧!1、表格空白页删除解决方法:表格造成的空白页,可
  • 在柱状图下面添加数据实际就是图标的一种布局,操作步骤如下:选中图表,点击图表工具——设计——图表布局,选择合适的布局即可!
  • 用密码来保护Excel文件的方法有很多。如果文件需要密码才能打开,那么你就得用密码恢复程序来破解密码。如果Excel文件的一个工作表或整个工
  • Excel中要将多个不相邻区域的数据都打印在同一个页面上,该如何操作呢?1.打开要打印的.xls表格文件。先给整张表做个视图,方法是点击“视
  • Excel表格现在已经成为了一个极其重要的办公工具,尤其是在数据处理方面,它可以进行各种数据的处理、统计分析和辅助决策操作,但是在日常工作中
  • Excel中经常需要在数据表中进行筛选数据,筛选数据具体该如何进行操作呢?接下来是小编为大家带来的excel表格筛选数据的方法,供大家参考。
  • 没使用Word都不知道有这么多难题,被很多小细节问题困扰怎么办?今天给大家分享下word怎么连续格式刷的操作,一起学习下哦!1、格式刷也能连
  • 很多朋友在办公过程中可能会根据工作的需求需要输入直径符号,但是却不知道直径符号怎么打。今天就来教大家如何用键盘打出直径符号。直径符号:Φ。
  • 在处理数据的时候经常会需要用到Excel进行对数据的编辑以及整理,或许有的朋友不知道数据处理功能该如何使用,没关系,下面是由小编分享的exc
  • 我们日常生活中最常用的一款办公软件word,相信很多小伙伴应该不陌生吧。我们除了可以用word来排版我们需要的各种资料,也可以用来画图。那么
  • 小伙伴们有使用Word文档写过大量资料文件吗,比如各级各类学生的毕业论文, 各种科研人员的科研报告,各级各类新闻媒体的深度报道,调查报告,学
  • win10系统操作界面和方式和win7系统有很大不同,有些用户想要设置屏幕的分辨率,但是却不知道应该怎么操作?屏幕分辨率会影响我们使用电脑的
  • Mac的Word 2011:自动创建目录?在Mac的Office 2011中,Word提供了一种快速创建目录(TOC)的新方法。如果您在整个
  • 在Excel中,如果要计算矩阵行列式的逆矩阵行列式,可以使用MINVERSE函数计算矩阵行列式的逆矩阵行列式。Excel2007可使用MIN
手机版 电脑教程 asp之家 www.aspxhome.com