VBA基础学习之1.14文本文件

VBA基础学习之文本文件

还可以读取Excel文件,并使用VBA将单元格的内容写入文本文件。VBA允许用户使用两种方法处理文本文件 -

  • 文件系统对象(FSO)
  • 使用Write命令

1.14.1 文件系统对象(FSO)
顾名思义,FSO对象帮助开发人员使用驱动器,文件夹和文件。 在本节中,我们将讨论如何使用FSO。

编号对象类型描述
1DriveDrive是一个对象。 包含收集有关连接到系统的驱动器的信息的方法和属性。
2DrivesDrives是一个集合。 它提供了连接到系统的驱动器的物理或逻辑列表。
3FileFile是一个对象。 它包含允许开发人员创建,删除或移动文件的方法和属性。
4FilesFiles是一个集合。 它提供了一个文件夹中包含的所有文件的列表。
5FolderFolder是一个对象。 它提供了允许开发人员创建,删除或移动文件夹的方法和属性。
6FoldersFolders是一个集合。 它提供了一个文件夹内所有文件夹的列表。
7TextStreamTextStream是一个对象。 它使开发人员能够读写文本文件。

Drive
Drive 是一个对象,它提供对特定磁盘驱动器或网络共享的属性的访问。 Drive对象支持以下属性 -

  • AvailableSpace
  • DriveLetter
  • DriveType
  • FileSystem
  • FreeSpace
  • IsReady
  • Path
  • RootFolder
  • SerialNumber
  • ShareName
  • TotalSize
  • VolumeName

示例
第1步 - 在使用FSO进行脚本编写之前,应该启用Microsoft脚本运行时。请导航到工具->引用,如以下屏幕截图所示。
在这里插入图片描述
第2步 - 添加“Microsoft脚本运行时间”,然后单击确定。
在这里插入图片描述
第3步 - 添加想要写入文本文件中的数据,这里添加一个命令按钮。
在这里插入图片描述
第4步 - 现在运行脚本。

Sub CommandButton1_Click()
   Const ForReading = 1, ForWriting = 2, ForAppending = 3
   Dim FilePath As String
   Dim CellData As String
   Dim LastCol As Long
   Dim LastRow As Long
   LastCol = ActiveSheet.UsedRange.Columns.Count
   LastRow = ActiveSheet.UsedRange.Rows.Count

    ' Create a TextStream.
   Set fso = CreateObject("Scripting.FileSystemObject")
   Set stream = fso.OpenTextFile("F:\worksp\vba\Support.log", ForWriting, True)

   CellData = ""
   ' LastRow = 3
   LastCol = 3
   For i = 1 To LastRow
      For j = 1 To LastCol
         CellData = Trim(ActiveCell(i, j).Value)
         stream.WriteLine "The Value at location (" & i & "," & j & ")" & CellData
      Next j
   Next i

   stream.Close
   MsgBox ("Job Done")

End Sub

执行脚本时,请确保将光标放在工作表的第一个单元格中。 Support.log文件的创建方式如下面“F:\worksp\vba”的目录,如下的截图所示。
在这里插入图片描述

该文件的内容,如以下屏幕截图中所示 -

The Value at location (1,1)姓名
The Value at location (1,2)性别
The Value at location (1,3)城市
The Value at location (2,1)张三
The Value at location (2,2)男
The Value at location (2,3)北京
The Value at location (3,1)李四
The Value at location (3,2)男
The Value at location (3,3)北京
The Value at location (4,1)王五
The Value at location (4,2)男
The Value at location (4,3)上海
The Value at location (5,1)李小丽
The Value at location (5,2)女
The Value at location (5,3)深圳
The Value at location (6,1)Linsa
The Value at location (6,2)女
The Value at location (6,3)深圳

1.14.2 Write命令
与FSO不同,不需要添加任何引用,但是,我们将无法使用驱动器,文件和文件夹。也能够将流添加到文本文件。

示例:

Sub CommandButton1_Click()
   Const ForReading = 1, ForWriting = 2, ForAppending = 3
   Dim FilePath As String
   Dim CellData As String
   Dim LastCol As Long
   Dim LastRow As Long

   LastCol = ActiveSheet.UsedRange.Columns.Count
   LastRow = ActiveSheet.UsedRange.Rows.Count

   FilePath = "F:\worksp\vba\write.txt"
   Open FilePath For Output As #2

   CellData = ""
   LastCol = 3
   For i = 1 To LastRow
      For j = 1 To LastCol
         CellData = "The Value at location (" & i & "," & j & ")" & Trim(ActiveCell(i, j).Value)
         Write #2, CellData
      Next j
   Next i

   Close #2
   MsgBox ("Job Done")

End Sub

执行该脚本时,将在“F:\worksp\vba”位置创建“write.txt”文件,如以下屏幕截图所示。
在这里插入图片描述
该文件的内容显示如以下屏幕截图
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值