如何使用 vba 创建和写入文本文件?

要使用 VBA 代码创建文本,必须使用 CreateTextFile 方法。此方法允许您设置要创建它的位置。此方法具有语法,您可以在其中指定是否要覆盖该位置的文件,并指定该文件是创建为 Unicode 还是 ASCII 文件。

使用VBA创建文本文件

使用以下步骤:

  1. 首先,您需要使用 FileSystemObject 或文件夹对象来与该方法一起使用。
    create-a-text-fie-using-vba
  2. 之后,您需要使用 CreateTextFile 方法创建另一个对象。
    create-text-file-method
  3. 在此代码中,如果文件夹中已存在同名文件,我们使用 TRUE 进行覆盖。
  4. 最后,当您运行此宏时,请在文件夹中创建一个新的文本文件,如下所示。
 Sub create_text_file() 'object to use as folder Dim fld As Object Set fld = CreateObject("Scripting.FileSystemObject") 'using create text file method Dim myFile As Object Set myFile = fld.CreateTextFile("C:UsersDellDesktopmyFoldermyTextFile.txt", True) End Sub

CreateTextFile 方法的语法

 CreateTextFile (filename, [ overwrite, [ unicode ]])
  • 文件名:要创建的文件的路径和名称。
  • overwrite:布尔值,定义是否要覆盖文件(如果已存在)(可选)。
  • unicode:布尔值,用于定义文件是否创建为 Unicode 文件或 ASCII 文件(可选)。

使用 VBA 写入文本文件

您可以使用两个语句将数据写入文本文件:

  1. 写入:使用此语句,您可以将数据写入文本文件,其中值之间有逗号,字符串周围有引号,日期周围有 # 符号。
    write-statement
  2. 打印:使用此语句,您可以将数据写入文本文件,其外观与 Excel 电子表格中的外观完全相同。
    print-statement

现在我们将查看这两个语句的示例,并了解如何编写完整的代码来写入文本文件。但在此之前,您需要了解一些术语才能按照您想要的方式编写代码。

  • 对于输出:当您想要在文本文件中写入数据或修改数据时,可以使用此命令。
  • 对于输入:使用此命令您可以从文本中提取数据,但您将无法修改数据并将数据添加到文件中。
  • 添加:此命令可帮助您在文本文件的底部添加新数据。
  • FreeFile:您可以使用它来设置一个未用于您要使用的文本文件的文件编号,以便您可以参考它。

现在让我们编写一段代码将数据输入到文本文件中。

  1. 首先,您需要声明要在代码中使用的变量。
    declare-variables
  2. 之后,您需要定义需要写入文本文件的范围。并通过将范围内的单元格数量设置为变量来将其用作循环的计数器。
    define-the-range
  3. 接下来,您需要设置要添加数据的文本文件的地址。
    define-the-address-of-the-text-file
  4. 从那里,您需要向变量声明“FreeFile”命令以获取文件号。
    freefile-command
  5. 现在您需要使用“输出”命令创建,因为您需要将数据添加到文件中。
    output-command
  6. 最后,需要使用“For Next”循环来一一获取范围值并将其添加到文件中。
    for-next-loop-to-get-values
  7. 此外,在向文本文件添加数据后,您需要使用 close 命令关闭该文本文件。
    close-command
  8. 最终,当您运行此宏时,它将 A1:A13 范围内的数据添加到您在提到的路径中保存的文本文件中。
    run-the-macro

注意:请确保根据您系统中的路径更改代码中文本文件的路径。

 Option Explicit Sub data_to_text_file() 'variables that you need to use in the code Dim TextFile As Integer Dim iCol As Integer Dim myRange As Range Dim cVal As Range Dim i As Integer Dim myFile As String 'define the range that you want to write Set myRange = Range("A1:A13") iCol = myRange.Count 'path to the text file (MAKE SURE TO CHANGE IT) myFile = "C:UsersDellDesktopNewFoldertextfile.txt" 'define FreeFile to the variable file number TextFile = FreeFile 'using append command to add text to the end of the file Open myFile For Output As TextFile 'loop to add data to the text file For i = 1 To iCol Print #TextFile, Cells(i, 1), Print #TextFile, Cells(i, 2) Next i 'close command to close the text file after adding data Close #TextFile End Sub

添加评论

您的电子邮箱地址不会被公开。 必填项已用 * 标注