ImageVerifierCode 换一换
格式:DOC , 页数:37 ,大小:167KB ,
资源ID:4735766      下载积分:5 金币
快捷注册下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/4735766.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请

   平台协调中心        【在线客服】        免费申请共赢上传

权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

注意事项

本文(Excel访问VB.doc)为本站上传会员【二***】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

Excel访问VB.doc

1、 本文由乌江情123贡献 doc文档可能在WAP端浏览体验不佳。建议您优先选择TXT,或下载源文件到本机查看。 Excel-VBA 操作文件四大方法之一 在我们日常使用 Excel 的时候,不仅会用到当前 Excel 文件的数据,还经常需要访问其他的 数据文件。这些数据文件可能是 Excel 文件、文本文件或数据库文件等。经常有朋友会问如 何在 vba 代码里操作这些数据文件?本文就系统地介绍一下在 Excel 中应用 VBA 操作数据 文件的方法。 本文主要介绍四种常用的方法: 1、利用 Excel 对象来处理文件; 2、利用 VBA 文件处理语句来处理文

2、件; 3、利用 FileSystemObject 对象来处理文件; 4、利用 API 函数来处理文件。 当然对于数据库文件,还可以利用 ADO+SQL 的方法操作,不过论坛已经有前辈详细介绍 过此类方法,本文就不再重复了。 一、利用 Excel 对象来处理文件 利用 Excel 对象自带的方法来操作文件是最方便,也是最简单的。 我们主要利用 Workbooks 集合和 Workbook 对象的方法来操作文件。 1、打开 Excel 文件 我们可以用 Workbooks.Open 方法打开一个 Excel 工作簿。 Workbooks.Open(FileName, UpdateLinks, Re

3、adOnly, Format, Password, WriteResPassword, IgnoreReadOnlyRecommended, Origin, Delimiter, Editable, Notify, Converter, AddToMru, Local, CorruptLoad) 其中 FileName 是必选的参数,表示要打开的工作簿名,如果没有指定路径,则代表当前 路径。 另外 14 个是可选参数, 除了密码参数, 其他的一般很少用。 具体的含义可以参看 VBA 的帮助。 例: Workbooks.Open "F:\test.xls" 可以打开 F 盘的 test.xls

4、文件。 2、打开文本文件 使用 Open 方法也可以打开文本文件,但建议使用 OpenText 方法。此方法是载入一个文 本文件, 并将其作为包含单个工作表的工作簿进行分列处理, 然后在此工作表中放入经过分 列处理的文本文件数据。完整语法如下: Workbooks.OpenText(FileName, Origin, StartRow, DataType, TextQualifier, ConsecutiveDelimiter, Tab, Semicolon, Comma, Space, Other, OtherChar, FieldInfo, TextVisualLayout, Decima

5、lSeparator, ThousandsSeparator, TrailingMinusNumbers, Local) 关于以上参数的具体含义可以参看 VBA 的帮助,这里就不重复了。在实际的编程中,一般 无需对这些复杂的参数进行处理。可以通过录制宏来得到打开一个文本文件的 VBA 代码。 具体方法就是选择“文件——打开” ,然后选择打开文本文件,就会出现文本导入向导,一 步一步执行完,直到文本打开后,停止录制。 以下是录制宏得到的代码: Sub Macro1() ‘ ‘ Macro1 Macro ‘ 宏由 MC SYSTEM 录制,时间: 2007-3-29 ‘ ‘ Workbo

6、oks.OpenText Filename:="F:\CallWindowProc.txt", Origin:=xlWindows, _ StartRow:=1, DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, _ ConsecutiveDelimiter:=False, Tab:=True, Semicolon:=False, Comma:=False _ , Space:=False, Other:=False, FieldInfo:=Array(1, 1), _ TrailingMinusNumbers:=True End Sub

7、 在实际编程中只要做相应的修改就可以使用了。 3、打开其他文件 利用 Excel 对象还可以打开 XML 文件和一些数据库(如 Access)文件,对应 XML 文件, 需要 Excel2003 以上的版本。 OpenXML 方法的语法如下: Workbooks.OpenXML(Filename, Stylesheets, LoadOption) FileName String 类型,必需。要打开的文件名。 Stylesheets Variant 类型,可选。单个值或值的数组,用于指定要应用哪些 XSL 转换 (XSLT) 样式表处理指令。 LoadOption Variant 类 型, 转换

8、 。指 定 Excel 打 开 XML 数 据文 件的 方式 。可 为 XlXmlLoadOption 常量之一。 XlXmlLoadOption 可为以下 XlXmlLoadOption 常量之一: xlXmlLoadImportToList 将 XML 数据文件的内容置于 XML 列表中。 xlXmlLoadMapXml 在“XML 结构”任务窗格中显示 XML 数据文件的架构。 xlXmlLoadOpenXml 打开 XML 数据文件。文件的内容将展开。 xlXmlLoadPromptUser 提示用户选择打开文件的方式。 示例 下面的代码打开了 XML 数据文件“c

9、ustomers.xml”并在 XML 列表中显示了此文件的内 容。 Sub UseOpenXML() Application.Workbooks.OpenXML _ Filename:="customers.xml", _ LoadOption:=xlXmlLoadImportToList End Sub OpenDatabase 方法语法如下: Workbooks.OpenDatabase(FileName, ImportDataAs) FileName CommandText CommandType SQL 和 Table。 BackgroundQuery ImportDataAs

10、 CommandText, CommandType, BackgroundQuery, String 类型,必需。连接字符串。 Variant 类型,可选。查询的命令文本。 Variant 类型, 可选。 查询的命令类型。 以下是可用的命令类型: Default、 Variant 类型,可选。查询的背景。 Variant 类型,可选。确定查询的格式。 示例 本示例中,Excel 打开了“northwind.mdb”文件。 Sub OpenDatabase() Workbooks.OpenDatabase FileName:="C:\nort

11、hwind.mdb" End Sub 4、保存文件 文件的保存使用 Workbook 对象的 Save 或 SaveAs 方法。 Save 方法使用简单,语法为 expression.Save,expression 是某个 Workbook 对象。 如:ActiveWorkbook.Save 即保存当前活动工作簿。 如果是第一次保存工作簿或要另存为,请使用 SaveAs 方法为该文件指定文件名。 其语法为: expression.SaveAs(FileName, FileFormat, Password, WriteResPassword, ReadOnlyRecommended,

12、CreateBackup, TextCodepage, TextVisualLayout, Local) AccessMode, ConflictResolution, AddToMru, 具体参数含义可参看 VBA 帮助,使用都比较简单。 示例 本示例新建一个工作簿,提示用户输入文件名,然后保存该工作簿。 Set NewBook = Workbooks.Add Do fName = Application.GetSaveAsFilename Loop Until fName <> False NewBook.SaveAs Filename:=fName

13、 Application.GetSaveAsFilename 为调出标准的“另存为”对话框,获取用户文件名,但并不 真正保存任何文件, 然后使用代码保存文件。 还有 Application.GetOpenFileName 可以调出标 准的“打开”对话框。 5、关闭文件 关闭文件可以使用 Workbooks 集合或 Workbook 对象的 Close 方法。前者是关闭所有打开 的工作簿,后者关闭特定的工作簿。 Workbook 对象的 Close 方法语法为: expression.Close(SaveChanges, Filename, RouteWorkbook) SaveChanges

14、参数表示是否保存更改,对许多不需要更改的操作,可设置为 False 以免弹出 保存更改提示的对话框。 FileName 可选。以此文件名保存所做的更改。 RouteWorkbook 可选。如果指定工作簿不需要传送给下一个收件人(没有传送名单或已经 传送) ,则忽略该参数。 示例 本示例关闭 Book1.xls,并放弃所有对此工作簿的更改。 Workbooks("BOOK1.XLS").Close SaveChanges:=False 本示例关闭所有打开的工作簿。 如果某个打开的工作簿有改变, Microsoft Excel 将显示询问 是否保存更改的对话框和相应提示。 Workbooks.Cl

15、ose 6、综合实例 假如 F 盘有一个 Excel 文件 test.xls, 现在有另一个 Excel 文件要访问 test.xls 的数据, 我们来 看用 VBA 代码如何操作。代码如下: Public Sub test() Application.ScreenUpdating = False Workbooks.Open "f:\test.xls" ThisWorkbook.Sheets(1).Range("b1") = ActiveWorkbook.Sheets(1).Range("a2") ActiveWorkbook.Close Application.ScreenUpd

16、ating = True End Sub 首先关闭屏幕刷新,是为了防止 test.xls 在打开时被看见(有时候还是看的见) 。打开后,见 test.xls 的 Sheet1 的单元格 A2 中的值赋给当前工作簿的 Sheet1 的单元格 B2,然后关闭 test.xls。 当要打开的工作簿不确定的时候,可以通过调用打开对话框来让用户自己选择。 可改为如下: Public Sub test() Application.ScreenUpdating = False Dim Filename as String Filename = Application.GetOpenFileName Work

17、books.Open Filename ThisWorkbook.Sheets(1).Range("b1") = ActiveWorkbook.Sheets(1).Range("a2") ActiveWorkbook.Close Application.ScreenUpdating = True End Sub 7、总结 利用 Excel 对象的方法进行文件操作是最简单,也是最方便的,适合初学者。对于 Excel 文 件格式,如果我们仅仅是读取其表格中的内容,这种方法也是首选。对于文本文件的操作, 使用第二种方法比较方便,若要将文本转换成表格,那么使用此方法也是合适的。 如何在 d:

18、\test.xls 已打开的情况下不让以下的语句再去创建一个 test.xls 的实例(虽然它标识为 只读), 并给出文件已打开的提示. 先做一个判断!判断该工作簿是否打开了? 例如: Set xlexcel = CreateObject("excel.application") dim wb as object set wb = xlexcel.workbooks("test.xls") if wb is nothing then msgbox "工作簿未打开!" xlexcel.Workbooks.Open "d:\test.xls" xlexcel.Visible = True

19、 end if Excel-VBA 操作文件四大方法之二 二、利用 VBA 文件处理语句来处理文件 VBA 包含了许多用于文件操作的语句和函数,可以满足绝大多数情况下的文件操作要 求。下面我们按照操作目的进行一一介绍。 (一)文件处理 1.Name 语句 语法:Name oldpathname As newpathname 功能:重命名一个文件、目录、或文件夹,移动一个文件。 说明:在一个已打开的文件上使用 Name,将会产生错误。进行文件操作时,一定要注意错 误处理。 示例: On Error Resume Next ‘错误处理 Name "f:\TEST.xls" As

20、 "f:\TEST123.xls" ‘重命名 Name "f:\TEST.xls" As "f:\dll\TEST.xls" ‘移动文件 Name "f:\TEST.xls" As "d:\TEST123.xls" ‘跨驱动器移动并重命名文件 注意:Name 不能移动一个目录或文件夹。 2、FileCopy 语句 语法:FileCopy source, destination 功能:复制一个文件。 说明:如果对一个已打开的文件使用 FileCopy 语句,则会产生错误。 示例: FileCopy "f:\TEST.xls", "e:\TEST.xls" ‘从 F 盘复制 TEST.x

21、ls 到 E 盘 3、Kill 语句 语法:Kill pathname 功能:从磁盘中删除文件。 说明:Kill 支持多字符 (*) 和单字符 (?) 的统配符来指定多重文件。如果使用 Kill 来删除 一个已打开的文件,则会产生错误。 示例: Kill "f:\TEST.xls" ’删除 F 盘的 TEST.xls 文件 Kill "f:\*.xls" ‘ 删除 F 盘所有 xls 文件 4、GetAttr 函数 语法:GetAttr(pathname) 功能:获取一个文件、目录、或文件夹的属性。返回一个 Integer 值。 返回值 由 GetAttr 返回的值,是下面这些属性值的总和:

22、常数 值 描述 vbNormal 0 常规 vbReadOnly 1 只读 vbHidden 2 隐藏 vbSystem 4 系统文件 vbDirectory 16 目录或文件夹 vbArchive 32 存档文件 vbalias 64 指定的文件名是别名。只在 Macintosh 中可用。 说明:若要判断是否设置了某个属性,在 GetAttr 函数与想要得知的属性值之间使用 And 运算符与逐位比较。如果所得的结果不为零,则表示设置了这个属性值。 示例: Debug.Print GetAttr("F:\test.txt") ‘若为存档文件,在立即窗口可看到值为 32 Debug.Print

23、GetAttr("F:\test.txt") ‘将属性—高级—可存档文件的勾去掉后,值为 0 为判断一个文件是否只读,可用下法: Debug.Print GetAttr("F:\test.txt") And vbReadOnly 若值非零,说明时只读的。 5、SetAttr 语句 语法:SetAttr pathname, attributes 功能:为一个文件设置属性。 说明:如果想要给一个已打开的文件设置属性,则会产生运行时错误。 示例: SetAttr"F:\test.txt", vbHidden ‘ 设置隐藏属性。 SetAttr"F:\test.txt", vbHidden

24、 vbReadOnly ‘ 设置隐藏并只读。 6、FileLen 函数 语法:FileLen(pathname) 功能:获取一个文件的长度,单位是字节。 说明:当调用 FileLen 函数时,不需要打开文件,如果所指定的文件已经打开,则返回的 值是这个文件在打开前的大小。 7、FileDateTime 函数 语法:FileDateTime(pathname) 功能:获取一个文件被创建或最后修改后的日期和时间。 示例: Debug.Print FileDateTime("F:\TEST.xls") ‘在立即窗口可看到 2007-3-29 19:28:27 (二)目录处理 1、CurD

25、ir 函数 语法:CurDir[(drive)] 功能:返回当前的路径。 说明:drive 参数是可选的,它指定一个存在的驱动器。如果没有指定驱动器,或 drive 是 零长度字符串 (""),则 CurDir 会返回当前驱动器的路径。 示例: Debug.Print CurDir ‘ 返回“C:\Documents and Settings\yc\My Documents” 。 Debug.Print CurDir("C") ‘ 返回“C:\Documents and Settings\yc\My Documents” 。 Debug.Print CurDir("D") ‘ 返回“

26、D:\” 。 2、ChDir 语句 语法:ChDir path 功能:改变当前的目录或文件夹。 说明:ChDir 语句改变缺省目录位置,但不会改变缺省驱动器位置。缺省驱动器一般是 C。 示例: ChDir "D:\temp" Debug.Print CurDir ‘ 返回“C:\Documents and Settings\yc\My Documents” 。 Debug.Print CurDir("D") ‘ 返回“D:\temp” 。 与上例比较,此时 D 盘的当前目录已经变为“D:\temp” ,但是缺省驱动器还是 C。 3、ChDrive 语句 语法:ChDrive drive 功能:

27、改变当前的驱动器。 说明:如果使用零长度的字符串 (""),则当前的驱动器将不会改变。如果 drive 参数中有多 个字符,则 ChDrive 只会使用首字母。 示例: ChDrive "D" ChDir "D:\temp" Debug.Print CurDir ‘ 返回“D:\temp” 。 Debug.Print CurDir("D") ‘ 返回“D:\temp” 。 与上例比较,用 CurDir 返回的是“D:\temp” ,当前驱动器已经变为 D 了。 4、Dir 函数 语法:Dir[(pathname[, attributes])] 两个参数都是可选的,attributes 表示文件

28、属性。 功能:返回一个文件名、目录名或文件夹名称,它必须与指定的模式或文件属性、或磁盘卷 标相匹配。 说明:在第一次调用 Dir 函数时,必须指定 pathname,否则会产生错误。如果也指定了文 件属性,那么就必须包括 pathname。 Dir 会返回匹配 pathname 的第一个文件名。若想得到其它匹配 pathname 的文件名,再一 次调用 Dir,且不要使用参数。如果已没有合乎条件的文件,则 Dir 会返回一个零长度字 符串 ("")。一旦返回值为零长度字符串,并要再次调用 Dir 时,就必须指定 pathname,否 则会产生错误。不必访问到所有匹配当前 pathna

29、me 的文件名,就可以改变到一个新的 pathname 上。但是,不能以递归方式来调用 Dir 函数。以 vbDirectory 属性来调用 Dir 不 能连续地返回子目录。 示例: Debug.Print Dir("F:\TEST.xls") ’返回"TEST.xls" Debug.Print Dir("F:\*.xls") ’返回按条件第一个找到的文件名。 Debug.Print Dir("F:\*.txt",vbReadOnly) ’返回第一个只读的 txt 文件 以下过程可显示 C 盘根目录下的所有目录. Sub DirC() MyPath = "c:\" MyName = dir(M

30、yPath, vbDirectory) ‘ 找寻第一项。 Do While MyName <> "" ‘ 开始循环。 ‘ 跳过当前的目录及上层目录。 If MyName <> "." And MyName <> ".." Then ‘ 使用位比较来确定 MyName 代表一目录。 If (GetAttr(MyPath & MyName) And vbDirectory) = vbDirectory Then Debug.Print MyName ‘ 如果它是一个目录,将其名称显示出来。 End If End If MyName = dir ‘ 查找下一个目录。 Loop End Sub 以下过

31、程利用递归可以查找目录和子目录下的所有文件。 Public Sub FindFile(mPath As String, Optional sFile As String = "") On Error Resume Next Dim s As String, sDir() As String Dim i As Long, d As Long If Right(mPath, 1) <> "\" Then mPath = mPath & "\" End If ‘查找目录下的文件 s = dir(mPath & sFile, vbArchive + vbDirectory + vbHidde

32、n + vbNormal + vbReadOnly + vbSystem) Do While s <> "" Debug.Print mPath & s s = dir Loop ‘查找目录下的子目录 s = dir(mPath, vbArchive + vbDirectory + vbHidden + vbNormal + vbReadOnly + vbSystem) Do While s <> "" If s <> "." And s <> ".." Then If (GetAttr(mPath & s) And vbDirectory) = vbDirectory Then d=d+1

33、ReDim Preserve sDir(d) sDir(d) = mPath & s End If End If s = dir Loop ‘开始递归 For i = 1 To d FindFile sDir(d) & "\" Next End Sub 5、MkDir 语句 语法:MkDir path 功能:创建一个新的目录或文件夹。 说明:path 可以包含驱动器。如果没有指定驱动器,则 MkDir 会在当前驱动器上创建新的 目录或文件夹。 示例: MkDir "MYDIR" 6、RmDir 语句 语法:RmDir path 功能:删除一个存在的目录或文件夹。 ‘在当前目

34、录建立新的目录或文件夹。 说明:如果想要使用 RmDir 来删除一个含有文件的目录或文件夹,则会发生错误。在试图 删除目录或文件夹之前,先使用 Kill 语句来删除所有文件。 示例: RmDir "MYDIR" ‘ 将 MYDIR 删除。 (三)处理文本文件 1、Open 语句 语法:Open pathname For mode [Access access] [lock] As [#]filenumber [Len=reclength] 其中 access、lock、reclength 为可选参数,一般不用。 mode 指定打开文件的方式。有 5 种: Inpu

35、t:以输入方式打开,即读取方式。 Output:以输出方式打开,即写入方式。 Append:以追加方式打开,即添加内容到文件末尾。 Binary:以二进制方式打开。 Random:以随机方式打开,如果未指定方式,则以 Random 方式打开文件。 filenumber 是一个有效的文件号, 范围在 1 到 511 之间。 可以指定, 也可使用 FreeFile 函 数可得到下一个可用的文件号。 说明: 如果 pathname 指定的文件不存在, 那么, 在用 Append、 Binary、 Output、 Random 或 方式打开文件时,可以建立这一文件。 示例: Open "F:\TEST

36、txt" For Input As #1 ‘以输入方式打开 Open "F:\TEST.xls" For Binary As #1 ‘以二进制方式打开 2、Close 语句 语法:Close [filenumberlist] filenumberlist 参数为一个或多个文件号,若省略 filenumberlist,则将关闭 Open 语句 打开的所有活动文件。 说明:打开文件后,必须在使用完后关闭文件。 示例: Dim I, FileName For I = 1 To 3 FileName = "TEST" & I ‘ 创建文件名。 Open FileName For Output As

37、I ‘ 打开文件。 Print #I, "This is a test." ‘ 将字符串写入文件。 Next I Close ‘ 将三个已打开的文件全部关闭。 3、Reset 语句 语法:Reset 功能:关闭所有用 Open 语句打开的磁盘文件。 说明:Reset 语句关闭 Open 语句打开的所有活动文件,并将文件缓冲区的所有内容写入磁 盘。 示例: Dim FileNumber For FileNumber = 1 To 5 Open "TEST" & FileNumber For Output As #FileNumber Write #FileNumber, "Hello

38、 World" ‘ 将数据写入文件。 Next FileNumber Reset ‘ 关闭文件并将缓冲区内的数据写到磁盘中。 4、FreeFile 函数 语法:FreeFile[(rangenumber)] 参数 rangenumber 指定一个范围, 以便返回该范围之内的下一个可用文件号。 指定 0 (缺省值) 则返回一个介于 1 – 255 之间的文件号。 指定 1 则返回一个介于 256 – 511 之间的文件号。 功能:提供一个尚未使用的文件号。 示例: Dim fnum As Integer fnum = FreeFile Open "F:\TEST.txt" For Input A

39、s #fnum Close #fnum 5、EOF 函数 语法:EOF(filenumber) 功能:返回一个 Integer,它包含 Boolean 值 True,表明已经到达为 Random 或顺序 Input 打开的文件的结尾。 6、LOF 函数 语法:LOF(filenumber) 功能:返回一个 Long,表示用 Open 语句打开的文件的大小,该大小以字节为单位。 7、Loc 函数 语法:LOc(filenumber) 功能:返回一个 Long,在已打开的文件中指定当前读/写位置。 8、Input # 语句 语法:Input #filenumber,

40、varlist 功能:从已打开的顺序文件中读出数据并将数据指定给变量。 说明:通常用 Write # 将 Input # 语句读出的数据写入文件。为了能够用 Input # 语句将文 件的数据正确读入到变量中,在将数据写入文件时,要使用 Write # 语句而不使用 Print # 语句。使用 Write # 语句可以确保将各个单独的数据域正确分隔开。 示例: 本示例使用 Input # 语句将文件内的数据读入两个变量中。本示例假设 TESTFILE 文件内 含数行以 Write # 语句写入的数据; 也就是说, 每一行数据中的字符串部分都是用双引号括 起来,而与数字用逗号隔开,例如, ("H

41、ello", 234) 。 Dim MyString, MyNumber Open "TESTFILE" For Input As #1 ‘ 打开输入文件。 Do While Not EOF(1) ‘ 循环至文件尾。 Input #1, MyString, MyNumber ‘ 将数据读入两个变量。 Debug.Print MyString, MyNumber ‘ 在立即窗口中显示数据。 Loop Close #1 ‘ 关闭文件。 9、Write # 语句 语法:Write #filenumber, [outputlist] 功能:将数据写入顺序文件。 说明:通常用 Input #

42、从文件读出 Write # 写入的数据。 如果省略 outputlist, 并在 filenumber 之后加上一个逗号, 则会将一个空白行打印到文件中。 多个表达式之间可用空白、分号或逗号隔开。空白和分号等效。 用 Write # 将数据写入文件时将遵循几个通用的约定, 使得无论什么区域都可用 Input # 读 出并正确解释数据: ·在写入数值数据时总使用句号作为十进制分隔符。 ·对于 Boolean 类型的数据,或者打印 #TRUE# 或者打印 #FALSE#。无论在什么地区, 都不将 True 和 False 这两个关键字翻译出来。 · 使用通用的日期格式将 Date 类型的数据写入文

43、件中。 当日期或时间的部件丢失或为零时, 只将现有部分写入文件中。 ·如果 outputlist 的数据为 Empty,则不将任何数据写入文件。但对 Null 数据,则要写入 #NULL#。 ·如果 outputlist 数据为 Null 数据,则将 #NULL# 写入文件中。 ·对于 Error 类型的数据,输出看起来与 #ERROR errorcode# 一样。无论在什么地区,都 不将关键字 Error 翻译出来。 与 Print # 语句不同,当要将数据写入文件时,Write # 语句会在项目和用来标记字符串的 引号之间插入逗号。没有必要在列表中键入明确的分界符。Write # 语句在将

44、 outputlist 中 的最后一个字符写入文件后会插入一个新行字符,即回车换行符,(Chr(13) + Chr(10))。 示例: Open "F:\test.txt" For Output As #1 ‘ 打开输出文件。 Write #1, "Hello World", 1234 ‘ 写入以逗号隔开的数据。 Write #1, ‘ 写入空白行。 Dim MyBool, MyDate, MyNull, MyError ‘ 赋值 Boolean、Date、Null 及 Error 等。 MyBool = False : MyDate = #February 12, 1969# : MyNul

45、l = Null MyError = CVErr(32767) ‘ Boolean 数据以 #TRUE# 或 #FALSE# 的格式写入。 ‘ 日期以通用日期格式写入,例如:#1994-07-13# 代表 ‘ 1994 年 1 月 13 日。Null 数据以 #NULL# 格式写入。 ‘ Error 数据以 #ERROR 错误代号# 的格式写入。 Write #1, MyBool; " is a Boolean value" Write #1, MyDate; " is a date" Write #1, MyNull; " is a null value" Write #1, MyError

46、 " is an error value" Close #1 ‘ 关闭文件。 我们可以看到写入的内容为: "Hello World",1234 #FALSE#," is a Boolean value" #1969-02-12#," is a date" #NULL#," is a null value" #ERROR 32767#," is an error value" 10、Line Input # 语句 语法:Line Input #filenumber, varname 功能:从已打开的顺序文件中读出一行并将它分配给 String 变量。 说明:通常用

47、 Print # 与 Line Input # 语句配合使用。 Line Input # 语句一次只从文件中读出一个字符,直到遇到回车符 (Chr(13)) 或回车–换行 符 (Chr(13) + Chr(10)) 为止。回车–换行符将被跳过,而不会被附加到字符串上。 示例: Dim TextLine Open "TESTFILE" For Input As #1 ‘ 打开文件。 Do While Not EOF(1) ‘ 循环至文件尾。 Line Input #1, TextLine ‘ 读入一行数据并将其赋予某变量。 Debug.Print TextLine ‘ 在立即窗口中显示数据。 L

48、oop Close #1 ‘ 关闭文件。 11、Input 函数 语法:Input(number, [#]filenumber) 其中 number 指定要返回的字符个数。 功能:返回 String,它包含以 Input 或 Binary 方式打开的文件中的字符。 说明: 通常用 Print # 或 Put 将 Input 函数读出的数据写入文件。 Input 函数只用于以 Input 或 Binary 方式打开的文件。 与 Input # 语句不同,Input 函数返回它所读出的所有字符,包括逗号、回车符、空白列、 换行符、引号和前导空格等。 示例: Dim MyChar Open "f:\

49、test.txt" For Input As #1 Do While Not EOF(1) MyChar = Input(1, #1) Debug.Print MyChar Loop Close #1 ‘ 循环至文件尾。 ‘ 读入一个字符。 ‘ 显示到立即窗口。 下面这个函数可以将文本文件的数据一次读入到一个字符串 (但是若包含中文时会出错, 因 为一个中文字占 2 个字节) 。 Public Function ReadText(FileName As String) Dim fnum%, isopen As Boolean On Error GoTo erro

50、fnum = FreeFile() Open FileName For Input As #fnum isopen = True ReadText = Input(LOF(fnum), fnum) erro: If isopen Then Close #fnum If err Then Debug.Print err.Number, err.Description End Function 12、Print # 语句 语法:Print #filenumber, [outputlist] outputlist 参数的设置如下: [{Spc(n) | Tab[(n)]}] [expression]

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服