VBA写入文本文件|使用VBA代码将Excel数据写入文本文件

Excel VBA写入文本文件

在VBA中,我们可以打开或读取或写入文本文件,写入文本文件意味着将数据保存在excel工作表中,并且希望将其保存到文本文件或记事本文件中,有两种方法可以执行,一种是通过使用VBA的文件系统对象属性,另一个是使用VBA中的打开和写入方法。

在大多数公司中,一旦完成报告,他们希望将报告上载到数据库。为了上传到数据库,他们使用“文本文件”格式来更新数据库。我们通常从excel复制数据并将其粘贴到文本文件中。我们之所以依赖文本文件,是因为它们的轻量级和简单方法使它们非常易于使用。通过使用VBA编码,我们可以自动化将数据从excel文件复制到文本文件的任务。在本文中,我们将向您展示如何使用VBA代码将数据从excel文件复制或写入文本文件。

如何使用VBA将数据写入文本文件?

将数据从excel写入文本是复杂的编码,并且需要非常了解VBA编码。请按照以下步骤编写VBA代码,以将数据从excel复制到文本文件。

在向您展示编写代码的方式之前,让我解释一下如何使用open语句打开文本文件。

打开文本文件的语法

打开[文件路径],对于[模式],作为[文件编号]

文件路径: 我们试图在计算机上打开的文件的路径。

模式: 模式是我们可以控制打开文本文件的控件。我们可以对文本文件进行三种类型的控制。

  • 输入模式: 这表明“只读”控制打开的文本文件。如果使用“输入模式”,则无法对文件执行任何操作。我们只能读取文本文件的内容。
  • 输出方式: 使用此选项,我们可以在上面写内容。我们需要记住的一点是,所有现有数据都将被覆盖。因此,我们需要提防旧数据可能丢失。
  • 追加模式: 此模式与 输出模式。 使用这种方法,我们实际上可以将新数据写入文件中现有数据的末尾。

文件编号: 这将计算所有打开的文本文件的文本文件编号。这将以1到511之间的整数值识别打开的文件号。分配文件号是一个棘手的问题,并且会引起很多混乱。为此,我们可以使用免费的File函数。

免费档案 返回打开文件的唯一编号。这样,我们可以分配唯一的文件编号,而无需任何重复的值。

您可以在此处下载此VBA编写文本文件模板– VBA编写文本文件模板

范例#1

请按照以下步骤编写代码以创建一个新的文本文件。

假设您的计算机存储中已经有一个名为“ Hello.txt”的文本文件,我们将向您展示如何在其中写入数据。

步骤1:声明变量

声明变量以将文件路径保存为字符串。

代码:

 Sub TextFile_Example1()昏暗路径作为字符串结尾Sub 

步骤2:确定文件号

为了确定要引用的文件号,我们将另一个变量声明为Integer。

代码:

 Sub TextFile_Example1()Dim路径作为字符串Dim FileNumber作为整数End Sub 

步骤3:分配文件路径

现在为Path变量分配一个带有文件名的文件路径。

代码:

 Sub TextFile_Example1()Dim Path as String Dim FileNumber As Integer Path =“ D:\ Excel Files \ VBA File \ Hello.txt”'根据您的要求更改路径End Sub 

步骤4:分配免费文件功能

现在为File Number变量分配功能“ Free File”以存储唯一的文件编号。

代码:

 Sub TextFile_Example1()Dim Path as String Dim FileNumber As Integer Path =“ D:\ Excel Files \ VBA File \ Hello.txt”'根据您的要求更改路径FileNumber = FreeFile End Sub 

步骤5:打开文本文件

现在我们需要打开文本文件来使用它。如前所述,我们需要使用OPEN语句打开文本文件。

步骤6:使用打印/写入方法

打开文件后,我们需要在其中写一些东西。要写入文本文件,我们需要使用“写入”或“打印”方法。

代码:

 Sub TextFile_Example1()昏暗的路径作为字符串昏暗的文件编号作为整数路径=“ D:\ Excel Files \ VBA File \ Hello.txt”'根据您的要求更改路径FileNumber = FreeFile输出的开放路径作为FileNumber打印#FileNumber,“欢迎“打印#FileNumber,”以“打印#FileNumber,” VBA“结束子 

首先,我们需要提及文件编号(此处已通过“ FileNumber”变量分配了文件),然后我们需要将要添加的内容添加到文本文件中。

步骤7:保存并关闭文本文件

将内容写入文本文件后,我们需要保存并关闭该文本文件。

代码:

 Sub TextFile_Example1()昏暗的路径作为字符串昏暗的文件编号作为整数路径=“ D:\ Excel Files \ VBA File \ Hello.txt”'根据您的要求更改路径FileNumber = FreeFile输出的开放路径作为FileNumber打印#FileNumber,“欢迎“打印#FileNumber,”到“打印#FileNumber,” VBA“关闭FileNumber结束子 

现在,手动或通过快捷键excel F5运行此代码,它将在提到的文本文件中写入提到的内容。

范例#2

现在,我们将看到如何将Excel工作表的数据写入文本文件。

对于此示例,我在excel中创建了简单的数据,如下所示。

步骤1: 继续旧的示例,再定义两个变量作为Integer以查找最后一行和最后一列。

代码:

 Sub TextFile_Example2()Dim路径作为字符串Dim FileNumber作为整数Dim LR作为Integer Dim LC作为Integer End Sub 

第2步: 在工作表中找到最后使用的行和列。

第三步: 现在分配文件路径和文件编号。

第4步: 现在使用OPEN语句打开文本文件。

步骤5: 我们需要遍历行和列,因此将另外两个变量声明为Integer。

步骤6: 现在打开“循环”以循环浏览该行(用于VBA中的下一个循环)

步骤7: 现在要遍历各列,请在现有循环中再打开一个循环。

步骤8: 我们需要写相同的数据行,直到到达最后一列。因此,在VBA中应用IF语句。

步骤9: 现在保存并关闭文本文件。

此代码会将详细信息写入文本文件,但是要在写入后打开文本文件,我们需要使用以下代码。

代码:

 Sub TextFile_Example2()Dim路径作为字符串Dim文件编号作为Integer Dim LR作为Integer Dim LC作为Integer Dim k作为Integer Dim i作为Integer LR = Worksheets(“ Text”)。Cells(Rows.Count,1).End(xlUp) .Row LC = Worksheets(“ Text”)。Cells(1,Columns.Count).End(xlToLeft).Column Path =“ D:\ Excel Files \ VBA File \ Hello.txt” FileNumber =用于输出为的FreeFile打开路径FileNumber对于k = 1到LR对于i = 1到LC如果i LC然后打印#FileNumber,Cells(i,k),否则打印#FileNumber,Cells(i,k)如果下一步,则结束i Next k关闭FileNumber Shell“ notepad” .exe“和路径,vbNormalFocus结束子 

因此,使用F5键或手动运行代码,然后它将复制数据,如下所示。