收藏 分销(赏)

Excel访问VB.doc

上传人:二*** 文档编号:4735766 上传时间:2024-10-11 格式:DOC 页数:37 大小:167KB
下载 相关 举报
Excel访问VB.doc_第1页
第1页 / 共37页
本文档共37页,全文阅读请下载到手机保存,查看更方便
资源描述
本文由乌江情123贡献 doc文档可能在WAP端浏览体验不佳。建议您优先选择TXT,或下载源文件到本机查看。 Excel-VBA 操作文件四大方法之一 在我们日常使用 Excel 的时候,不仅会用到当前 Excel 文件的数据,还经常需要访问其他的 数据文件。这些数据文件可能是 Excel 文件、文本文件或数据库文件等。经常有朋友会问如 何在 vba 代码里操作这些数据文件?本文就系统地介绍一下在 Excel 中应用 VBA 操作数据 文件的方法。 本文主要介绍四种常用的方法: 1、利用 Excel 对象来处理文件; 2、利用 VBA 文件处理语句来处理文件; 3、利用 FileSystemObject 对象来处理文件; 4、利用 API 函数来处理文件。 当然对于数据库文件,还可以利用 ADO+SQL 的方法操作,不过论坛已经有前辈详细介绍 过此类方法,本文就不再重复了。 一、利用 Excel 对象来处理文件 利用 Excel 对象自带的方法来操作文件是最方便,也是最简单的。 我们主要利用 Workbooks 集合和 Workbook 对象的方法来操作文件。 1、打开 Excel 文件 我们可以用 Workbooks.Open 方法打开一个 Excel 工作簿。 Workbooks.Open(FileName, UpdateLinks, ReadOnly, Format, Password, WriteResPassword, IgnoreReadOnlyRecommended, Origin, Delimiter, Editable, Notify, Converter, AddToMru, Local, CorruptLoad) 其中 FileName 是必选的参数,表示要打开的工作簿名,如果没有指定路径,则代表当前 路径。 另外 14 个是可选参数, 除了密码参数, 其他的一般很少用。 具体的含义可以参看 VBA 的帮助。 例: Workbooks.Open "F:\test.xls" 可以打开 F 盘的 test.xls 文件。 2、打开文本文件 使用 Open 方法也可以打开文本文件,但建议使用 OpenText 方法。此方法是载入一个文 本文件, 并将其作为包含单个工作表的工作簿进行分列处理, 然后在此工作表中放入经过分 列处理的文本文件数据。完整语法如下: Workbooks.OpenText(FileName, Origin, StartRow, DataType, TextQualifier, ConsecutiveDelimiter, Tab, Semicolon, Comma, Space, Other, OtherChar, FieldInfo, TextVisualLayout, DecimalSeparator, ThousandsSeparator, TrailingMinusNumbers, Local) 关于以上参数的具体含义可以参看 VBA 的帮助,这里就不重复了。在实际的编程中,一般 无需对这些复杂的参数进行处理。可以通过录制宏来得到打开一个文本文件的 VBA 代码。 具体方法就是选择“文件——打开” ,然后选择打开文本文件,就会出现文本导入向导,一 步一步执行完,直到文本打开后,停止录制。 以下是录制宏得到的代码: Sub Macro1() ‘ ‘ Macro1 Macro ‘ 宏由 MC SYSTEM 录制,时间: 2007-3-29 ‘ ‘ Workbooks.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 在实际编程中只要做相应的修改就可以使用了。 3、打开其他文件 利用 Excel 对象还可以打开 XML 文件和一些数据库(如 Access)文件,对应 XML 文件, 需要 Excel2003 以上的版本。 OpenXML 方法的语法如下: Workbooks.OpenXML(Filename, Stylesheets, LoadOption) FileName String 类型,必需。要打开的文件名。 Stylesheets Variant 类型,可选。单个值或值的数组,用于指定要应用哪些 XSL 转换 (XSLT) 样式表处理指令。 LoadOption Variant 类 型, 转换 。指 定 Excel 打 开 XML 数 据文 件的 方式 。可 为 XlXmlLoadOption 常量之一。 XlXmlLoadOption 可为以下 XlXmlLoadOption 常量之一: xlXmlLoadImportToList 将 XML 数据文件的内容置于 XML 列表中。 xlXmlLoadMapXml 在“XML 结构”任务窗格中显示 XML 数据文件的架构。 xlXmlLoadOpenXml 打开 XML 数据文件。文件的内容将展开。 xlXmlLoadPromptUser 提示用户选择打开文件的方式。 示例 下面的代码打开了 XML 数据文件“customers.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 CommandText, CommandType, BackgroundQuery, String 类型,必需。连接字符串。 Variant 类型,可选。查询的命令文本。 Variant 类型, 可选。 查询的命令类型。 以下是可用的命令类型: Default、 Variant 类型,可选。查询的背景。 Variant 类型,可选。确定查询的格式。 示例 本示例中,Excel 打开了“northwind.mdb”文件。 Sub OpenDatabase() Workbooks.OpenDatabase FileName:="C:\northwind.mdb" End Sub 4、保存文件 文件的保存使用 Workbook 对象的 Save 或 SaveAs 方法。 Save 方法使用简单,语法为 expression.Save,expression 是某个 Workbook 对象。 如:ActiveWorkbook.Save 即保存当前活动工作簿。 如果是第一次保存工作簿或要另存为,请使用 SaveAs 方法为该文件指定文件名。 其语法为: expression.SaveAs(FileName, FileFormat, Password, WriteResPassword, ReadOnlyRecommended, CreateBackup, TextCodepage, TextVisualLayout, Local) AccessMode, ConflictResolution, AddToMru, 具体参数含义可参看 VBA 帮助,使用都比较简单。 示例 本示例新建一个工作簿,提示用户输入文件名,然后保存该工作簿。 Set NewBook = Workbooks.Add Do fName = Application.GetSaveAsFilename Loop Until fName <> False NewBook.SaveAs Filename:=fName Application.GetSaveAsFilename 为调出标准的“另存为”对话框,获取用户文件名,但并不 真正保存任何文件, 然后使用代码保存文件。 还有 Application.GetOpenFileName 可以调出标 准的“打开”对话框。 5、关闭文件 关闭文件可以使用 Workbooks 集合或 Workbook 对象的 Close 方法。前者是关闭所有打开 的工作簿,后者关闭特定的工作簿。 Workbook 对象的 Close 方法语法为: expression.Close(SaveChanges, Filename, RouteWorkbook) SaveChanges 参数表示是否保存更改,对许多不需要更改的操作,可设置为 False 以免弹出 保存更改提示的对话框。 FileName 可选。以此文件名保存所做的更改。 RouteWorkbook 可选。如果指定工作簿不需要传送给下一个收件人(没有传送名单或已经 传送) ,则忽略该参数。 示例 本示例关闭 Book1.xls,并放弃所有对此工作簿的更改。 Workbooks("BOOK1.XLS").Close SaveChanges:=False 本示例关闭所有打开的工作簿。 如果某个打开的工作簿有改变, Microsoft Excel 将显示询问 是否保存更改的对话框和相应提示。 Workbooks.Close 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.ScreenUpdating = 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 Workbooks.Open Filename ThisWorkbook.Sheets(1).Range("b1") = ActiveWorkbook.Sheets(1).Range("a2") ActiveWorkbook.Close Application.ScreenUpdating = True End Sub 7、总结 利用 Excel 对象的方法进行文件操作是最简单,也是最方便的,适合初学者。对于 Excel 文 件格式,如果我们仅仅是读取其表格中的内容,这种方法也是首选。对于文本文件的操作, 使用第二种方法比较方便,若要将文本转换成表格,那么使用此方法也是合适的。 如何在 d:\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 end if Excel-VBA 操作文件四大方法之二 二、利用 VBA 文件处理语句来处理文件 VBA 包含了许多用于文件操作的语句和函数,可以满足绝大多数情况下的文件操作要 求。下面我们按照操作目的进行一一介绍。 (一)文件处理 1.Name 语句 语法:Name oldpathname As newpathname 功能:重命名一个文件、目录、或文件夹,移动一个文件。 说明:在一个已打开的文件上使用 Name,将会产生错误。进行文件操作时,一定要注意错 误处理。 示例: On Error Resume Next ‘错误处理 Name "f:\TEST.xls" As "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.xls 到 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 返回的值,是下面这些属性值的总和: 常数 值 描述 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 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 + vbReadOnly ‘ 设置隐藏并只读。 6、FileLen 函数 语法:FileLen(pathname) 功能:获取一个文件的长度,单位是字节。 说明:当调用 FileLen 函数时,不需要打开文件,如果所指定的文件已经打开,则返回的 值是这个文件在打开前的大小。 7、FileDateTime 函数 语法:FileDateTime(pathname) 功能:获取一个文件被创建或最后修改后的日期和时间。 示例: Debug.Print FileDateTime("F:\TEST.xls") ‘在立即窗口可看到 2007-3-29 19:28:27 (二)目录处理 1、CurDir 函数 语法: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") ‘ 返回“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 功能:改变当前的驱动器。 说明:如果使用零长度的字符串 (""),则当前的驱动器将不会改变。如果 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 表示文件属性。 功能:返回一个文件名、目录名或文件夹名称,它必须与指定的模式或文件属性、或磁盘卷 标相匹配。 说明:在第一次调用 Dir 函数时,必须指定 pathname,否则会产生错误。如果也指定了文 件属性,那么就必须包括 pathname。 Dir 会返回匹配 pathname 的第一个文件名。若想得到其它匹配 pathname 的文件名,再一 次调用 Dir,且不要使用参数。如果已没有合乎条件的文件,则 Dir 会返回一个零长度字 符串 ("")。一旦返回值为零长度字符串,并要再次调用 Dir 时,就必须指定 pathname,否 则会产生错误。不必访问到所有匹配当前 pathname 的文件名,就可以改变到一个新的 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(MyPath, 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 以下过程利用递归可以查找目录和子目录下的所有文件。 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 + vbHidden + 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 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 功能:删除一个存在的目录或文件夹。 ‘在当前目录建立新的目录或文件夹。 说明:如果想要使用 RmDir 来删除一个含有文件的目录或文件夹,则会发生错误。在试图 删除目录或文件夹之前,先使用 Kill 语句来删除所有文件。 示例: RmDir "MYDIR" ‘ 将 MYDIR 删除。 (三)处理文本文件 1、Open 语句 语法:Open pathname For mode [Access access] [lock] As [#]filenumber [Len=reclength] 其中 access、lock、reclength 为可选参数,一般不用。 mode 指定打开文件的方式。有 5 种: Input:以输入方式打开,即读取方式。 Output:以输出方式打开,即写入方式。 Append:以追加方式打开,即添加内容到文件末尾。 Binary:以二进制方式打开。 Random:以随机方式打开,如果未指定方式,则以 Random 方式打开文件。 filenumber 是一个有效的文件号, 范围在 1 到 511 之间。 可以指定, 也可使用 FreeFile 函 数可得到下一个可用的文件号。 说明: 如果 pathname 指定的文件不存在, 那么, 在用 Append、 Binary、 Output、 Random 或 方式打开文件时,可以建立这一文件。 示例: Open "F:\TEST.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 #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 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 As #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, varlist 功能:从已打开的顺序文件中读出数据并将数据指定给变量。 说明:通常用 Write # 将 Input # 语句读出的数据写入文件。为了能够用 Input # 语句将文 件的数据正确读入到变量中,在将数据写入文件时,要使用 Write # 语句而不使用 Print # 语句。使用 Write # 语句可以确保将各个单独的数据域正确分隔开。 示例: 本示例使用 Input # 语句将文件内的数据读入两个变量中。本示例假设 TESTFILE 文件内 含数行以 Write # 语句写入的数据; 也就是说, 每一行数据中的字符串部分都是用双引号括 起来,而与数字用逗号隔开,例如, ("Hello", 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 # 从文件读出 Write # 写入的数据。 如果省略 outputlist, 并在 filenumber 之后加上一个逗号, 则会将一个空白行打印到文件中。 多个表达式之间可用空白、分号或逗号隔开。空白和分号等效。 用 Write # 将数据写入文件时将遵循几个通用的约定, 使得无论什么区域都可用 Input # 读 出并正确解释数据: ·在写入数值数据时总使用句号作为十进制分隔符。 ·对于 Boolean 类型的数据,或者打印 #TRUE# 或者打印 #FALSE#。无论在什么地区, 都不将 True 和 False 这两个关键字翻译出来。 · 使用通用的日期格式将 Date 类型的数据写入文件中。 当日期或时间的部件丢失或为零时, 只将现有部分写入文件中。 ·如果 outputlist 的数据为 Empty,则不将任何数据写入文件。但对 Null 数据,则要写入 #NULL#。 ·如果 outputlist 数据为 Null 数据,则将 #NULL# 写入文件中。 ·对于 Error 类型的数据,输出看起来与 #ERROR errorcode# 一样。无论在什么地区,都 不将关键字 Error 翻译出来。 与 Print # 语句不同,当要将数据写入文件时,Write # 语句会在项目和用来标记字符串的 引号之间插入逗号。没有必要在列表中键入明确的分界符。Write # 语句在将 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# : MyNull = 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; " 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 变量。 说明:通常用 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 ‘ 在立即窗口中显示数据。 Loop Close #1 ‘ 关闭文件。 11、Input 函数 语法:Input(number, [#]filenumber) 其中 number 指定要返回的字符个数。 功能:返回 String,它包含以 Input 或 Binary 方式打开的文件中的字符。 说明: 通常用 Print # 或 Put 将 Input 函数读出的数据写入文件。 Input 函数只用于以 Input 或 Binary 方式打开的文件。 与 Input # 语句不同,Input 函数返回它所读出的所有字符,包括逗号、回车符、空白列、 换行符、引号和前导空格等。 示例: Dim MyChar Open "f:\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 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]
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传
相似文档                                   自信AI助手自信AI助手

当前位置:首页 > 通信科技 > 计算机应用

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

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

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

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

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

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

客服