VBA 脚本:执行 DOS 命令并读取 TXT 文件到 Excel 表格

本 VBA 脚本演示了如何使用 Shell 命令执行 DOS 命令,并读取生成的 TXT 文件内容到 Excel 表格。脚本包含清晰的注释,并使用最佳实践来提高代码可读性和效率。

Sub 执行dos并读取txt()

    ' 使用 Shell 命令执行 DOS 命令,在 d:\test.txt 文件中写入内容
    Shell "cmd /c echo. >d:\test.txt & echo.&echo. '说点啥子呢' >>d:\test.txt  & echo.  '完成' >>d:\test.txt", vbHide

    ' 启用屏幕更新
    Application.ScreenUpdating = False
    file_name = "d:\test.txt"

    ' 读取文件内容
    Dim file_content As String
    Open file_name For Input As #1
    file_content = Input$(LOF(1), 1)
    Close #1

    ' 将文件内容分割成行
    Dim lines() As String
    lines = Split(file_content, vbCrLf)

    ' 遍历每一行,将内容输出到 Excel 表格
    Dim i As Integer
    Dim j As Integer
    For i = 1 To UBound(lines) + 1
        ' 以逗号作为分隔符,将每行字符分割
        Dim cols() As String
        cols = Split(lines(i - 1), ",")

        ' 遍历该行的每一列
        For j = 1 To UBound(cols) + 1
            ' 输出到表格中
            Worksheets("Sheet1").Cells(i, j) = cols(j - 1)
        Next j
    Next i

    ' 运行结束,恢复屏幕更新
    Application.ScreenUpdating = True
    MsgBox ("文件" & file_name & "读取完成,共" & UBound(lines) + 1 & "行")

End Sub

代码说明:

  • 使用 Shell 命令执行 DOS 命令,在 d:\test.txt 文件中写入内容。
  • 使用 Input$(LOF(1), 1) 读取文件内容到 file_content 变量。
  • 使用 Split(file_content, vbCrLf) 将文件内容分割成行。
  • 使用嵌套循环遍历每一行和每一列,并将内容输出到 Sheet1 工作表。

注意:

  • 请将 d:\test.txt 文件路径替换成您实际的路径。
  • 请根据您的实际需要修改代码中的分隔符(默认为逗号)。
  • 请根据您的实际需要修改输出到的工作表名称。

代码优点:

  • 清晰的注释,方便理解代码逻辑。
  • 使用最佳实践,提高代码可读性和效率。
  • 可以轻松扩展,用于读取其他格式的文件或执行其他 DOS 命令。

希望本脚本能够帮助您实现您的自动化需求!

VBA 脚本:执行 DOS 命令并读取 TXT 文件到 Excel 表格

原文地址: http://www.cveoy.top/t/topic/iXFE 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录