编程技术分享平台

网站首页 > 技术教程 正文

VBA编程,如何进行文件内容添加修改操作,看完这篇文章就明白了

xnh888 2024-10-25 18:10:17 技术教程 52 ℃ 0 评论

本文所指的文件管理,是对单个文件内容进行写入读取操作,所以有别于对文件的一般性操作。

所以,我们用到一个特别的对象:TextStream 直译意思就是,文件流,也可以理解为文件顺序简便管理。

如上图所示,对象的语法为:

TextStream. { property | method }

其中property 和 method 参数可以为与 TextStream 对象关联任意属性和方法。

具体TextStream 对象有哪些属性和方法,如下图所示:

也可以查看下表 :

TextStream 方法

方法

说明

Close

关闭打开的 TextStream 文件。

Read

从 TextStream 文件读取指定数量的字符并返回结果。

ReadAll

读取整个 TextStream 文件并返回结果。

ReadLine

从 TextStream 文件读取一行并返回结果。

Skip

在读取 TextStream 文件时跳过指定数量的字符。

SkipLine

当读取 TextStream 文件时跳过下一行。

Write

将指定的文本写入 TextStream 文件。

WriteBlankLines

将指定数量的换行字符写入 TextStream 文件。

WriteLine

将指定的文本和换行符写入 TextStream 文件。

TextStream 属性:

属性

说明

AtEndOfLine

如果文件指针紧接在 TextStream 文件的行尾标记之前,则返回 true;如果不是,则返回 false。

AtEndOfStream

如果文件指针位于 TextStream 文件的末尾,则返回 true;如果不是,则返回 false。

Column

返回输入流中当前字符位置的列号。

Line

返回 TextStream 文件中当前的行号。

如下示例,进行具体说明:

本示例可以实现打开一个选定的文本文件,然后编辑后进行保存操作。

首先,要解决一个问题,如何返回一个TextStream对象?

实际上是由 FileSystemObject 的多个方法来进行返回。

  1. CreateTextFile 方法返回 TextStream 对象。
  2. OpenTextFile方法返回 TextStream 对象。

也可以通过GetFIle对象的OpenAsTextStream方法返回一个TextStream对象。

示例:

Sub CreateFile
    Set fs = CreateObject("Scripting.FileSystemObject")
    Set x = fs.CreateTextFile("c:\JiangMi.txt", True)
   				x.Close
End Sub

示例中的x就是一个TextStream对象。

代码:

Private Sub OpenTextFile()
'打开文件
Me.TextBox1.Text = ""
Me.TextBox2.Text = ""
Dim fs As Object, ts As Object
Set fs = CreateObject("Scripting.FileSystemObject") '创建文件系统对象
With Application.FileDialog(msoFileDialogOpen)
    If .Show = -1 Then
        Set ts = fs.opentextfile(.SelectedItems(1), 1, False) '打开文件
            Me.TextBox2.Text = .SelectedItems(1)
            If Not ts.atendofstream Then
'                Me.TextBox1.Text = ts.readall '读取所有内容
'                ts.Skip 3'跳过3个字符
'                Me.TextBox1.Text = ts.readline'读取一行字符
'                ts.skipline '跳过一行
                Me.TextBox1.Text = ts.readall
            End If
        ts.Close
    End If
End With
Set fs = Nothing
End Sub
Private Sub SaveFile()
'保存文件
Dim fs As Object, ts As Object, rs As Object
Set fs = CreateObject("Scripting.FileSystemObject") '创建文件系统对象
If VBA.Dir(Me.TextBox2.Text, vbNormal) <> "" Then
    Set ts = fs.getfile(Me.TextBox2.Text)
    Set rs = ts.openastextstream(2, -2)
        rs.writeblanklines 3 '输入3个换行符
        rs.writeline "#." '输入字符 和换行符
        rs.write Me.TextBox1.Text
    rs.Close
    Set ts = Nothing
End If
Set fs = Nothing
End Sub

根据以上两段程序可以实现对文件的读取和写入操作,以及相关属性的解读操作。

文件管理实际上是一个磁盘管理的内容,更多地学习一下数据结构,对此就有了更加深入的理解了,所以,这方面对于只知道表格编辑来说,还是不太容易理解的。

END

更多阅读:

VBA如何制作一个文件管理器

文件存放目录管理,再也不用担心找不到文件了,office办公好工具

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表