VBA打开文件:如何打开和操作文件
应用程序的VBA或Visual Basic与Visual Basic密切相关。该应用程序在向Microsoft Office套件添加功能时非常有用。VBA是简单的使用和自动化例行任务,特别是在微软Excel。程序员广泛使用它来创建高效而优雅的宏。MS Excel有一个内置的Visual Basic编辑器,你可以在这里编写和测试你的VBA代码。Excel VBA可以打开现有的工作表并在其上运行宏。文件是任何计算机系统的重要组成部分。它可以是一个简单的文本文件,也可以是一个可执行文件。大多数编程语言都有内建函数来处理和操作文件。今天,在这个中级教程中我们向您介绍VBA文件打开函数。 We assume that you are familiar with MS Excel, VBA and concepts of file manipulation.如果你想首先学习基础知识,我们强烈推荐这门关于Excel VBA的入门课程。
什么是文件?
计算机文件是一段特定的数据。它有一个标识文件的名称。该文件有一个扩展名,它告诉操作系统和相关程序它是什么类型的文件。注意,每个文件都有一个大小,包括大小0。每个文件在计算机系统中都有一个位置并被编入索引。可以创建或删除、移动或复制或更改计算机文件。每个文件都包含决定其用途的属性。这些属性包括查看、打开、读取、修改文件的权限和其他权限。
类型的文件
操作系统将文件识别为普通文件、目录文件或特殊文件。这些基本类型的文件存在许多变体。
- 常规文件-这些是最常见的文件,用于存储数据。它们有两种类型,即文本文件和二进制文件。文本文件包含以ASCII格式存储的用户可读的信息。二进制文件包含计算机可读的信息。
- 目录文件—这些文件包含系统访问所有类型文件所需的信息。
- 特殊文件—特殊文件是各种进程创建的临时文件。它们有三种类型,即先进先出、块和字符。最后两种文件类型定义设备。
注意,每个文件都有一组文件特权,这些特权决定了谁可以读取、修改或执行文件。
什么是VBA打开文件
Open语句允许用户打开文件。该语句的语法如下:
打开路径名模式[Access Access] [lock]
让我们仔细看看打开文件参数
- 路径名-该字段是必需的。它指定一个包含其目录和驱动器的文件名。
- 模式—该字段也是必填项。模式可以是追加,二进制,输出,输入或随机。默认模式为随机模式。
- 访问-可选参数。它指定在打开的文件上允许的操作。可以是read、write或read - write。
- 锁,它是一个可选参数。它指定在打开的文件上限制的操作,如共享、锁读、锁写和锁读写。
注意,我们在这里给出的所有示例中都使用了虚拟文件位置。我们建议您提供您计算机上的实际文件位置。
例1:在MS Excel中打开现有文件的程序
子openworksheet()工作簿。打开文件名:= _ "C:\Desktop/Emp_details.xlsx
这个宏是在Visual Basic编辑器中编写的。为了打开文件,文件的位置地址是给定的。在编写代码时,给出Excel文件的完整文件位置。例如,如果你的文件存储在我的文档中,请将文件地址设置为“C:\MyDocuments/Emp_details.xlsx”
要了解更多关于VBA文件函数的知识,我们建议你去学习本课程的VBA宏。
示例2:程序打开和操作一个CSV文件
请注意,CSV文件有三个字段,这些字段用逗号分隔。
Sub OpenTextFile() Dim File_Path As String File_Path =" C:\Users\owner\John\employee.csv" Open File_Path for Input As #1 row_num= 0直到EOF(1) Line Input #1, Line_FromFile Line_Items = Split(Line_FromFile, ",") ActiveCell。Offset(row_num, 0). value = Line_Items(2)Offset(row_num, 1). value = Line_Items(1)Offset(row_num, 2).Value = Line_Items(0) row_num = row_num + 1 Loop Close #1 End Sub .Value = Line_Items(0
在这个程序中,模式是用来读取文件的输入模式。FileNumber为1。在“Line Input #1, Line_FromFile”中,逗号前的前3个元素指的是文件中的一行输入。在逗号之后,告诉VBA将该行放入变量Line_FromFile中。在每次循环迭代中,将从文本文件中获取一个新行,并将其放在这个变量中。由于该行中有逗号,您需要解析它。通过使用Split函数,可以将一行中的每一项放入名为Line_Items的数组中。文本文件每行有三个项目。这个数组从0到2个位置。
然后我们将每个项目放入电子表格的单元格中。在每个循环迭代中,增加row_num变量。当到达文件末尾时,循环终止。最后,我们关闭文件。如果没有关闭文件,文件句柄和分配给该文件的内存空间将保持锁定状态,处于僵尸状态。这意味着内存不能在以后重用或回收。因此,务必记住关闭所有未使用的文件,以避免耗尽内存。
要了解更多关于MS Excel VBA程序,请跳过这门优秀的课程,它教你的例子.
示例3:程序在Access中打开Excel工作表
Sub openWorkbook() Dim ABC_App As Excel。应用昏暗XYZ_Book作为Excel。Workbook Set XYZ_Book = Workbooks.Open("C:\employee_details.xlsx")父ABC_App。Visible = True结束Sub
在这个程序中,声明了变量ABC_App和XYZ_Book。它们用于访问Excel对象。应用程序和Excel。工作簿。要打开Excel工作簿,请提供路径和电子表格名称。最后,通过将电子表格的可见属性设置为“True”来显示它。Excel先生在本课程中有一些关于VBA宏的好技巧你可能会想抬头看看。
在下一个示例中,我们将看看如何使用VBA函数打开PDF文件并打印它。
示例4:打开和打印PDF文件的程序
Sub OpenPDF() Dim PDF_File As String PDF_File = \"C:\\employee.pdf\" If Not filellocked (PDF_File) Then Documents. "开放PDF_File)结束,如果结束子子PrintPDF (PDF_File字符串)暗PDF_Reader作为字符串PDF_Reader = \“C: \ \程序文件\ \ Adobe读者\ \ \ \ 6.0 \ \ Acrobat AcroRd32.exe \“RetVal =壳(PDF_Reader & \ " / P \ " &科(34)& PDF_File &科(34),0)结束子子CommandButton_Click()调用OpenPDF PrintPDF结束子打电话
给出您想要打开的PDF文件的整个路径和文件名。检查文件是否已经打开。如果没有,那么继续打开PDF文件。在打印文件的代码中,为计算机上的adobereader、Acrobat或任何PDF阅读器提供完整路径。最后打开PDF文档并在单击按钮时打印。记得在打印之前打开PDF文件。
处理文件是创建有用应用程序的重要部分。VBA为我们提供了处理和操作文件的工具。一定要自己写代码,这样你就会掌握处理文件的艺术。我们希望本教程能帮助您理解如何处理文件。一旦你准备进入下一个级别,尝试这个终极VBA课程更进一步。