VBA 脚本:执行 DOS 命令并读取 TXT 文件到 Excel 表格
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 命令。
希望本脚本能够帮助您实现您的自动化需求!
原文地址: http://www.cveoy.top/t/topic/iXFE 著作权归作者所有。请勿转载和采集!