赞
踩
经验: 编程确实如李笑来所说,有很多知识前置,所以少年,努力学习吧,除了这个也没啥其他难度。
我在这里搜了搜 https://docs.microsoft.com/zh-cn/office/vba/Language/Reference/User-Interface-Help/printstatement
MSDN的DOC解释
从txt中读取全部内容
- Sub test_jackma1()
-
- Dim s As String
-
- Open "C:\Users\Administrator\Desktop\test101.txt" For Input As #1
- Do While Not EOF(1)
- Line Input #1, s
- Debug.Print s
- Loop
- Close #1
-
-
- End Sub
读取部分内容--读取几行
- Sub test_jackma1()
-
- Dim s As String
-
- Open "C:\Users\Administrator\Desktop\test101.txt" For Input As #1
-
-
- Line Input #1, s
- Debug.Print s
- Line Input #1, s
- Debug.Print s
- Line Input #1, s
- Debug.Print s
-
-
- Close #1
-
-
- End Sub
循环逐行读(没有实现自动读最大行数等)
- Sub test_jackma1()
-
- Dim s As String
-
- Open "C:\Users\Administrator\Desktop\test101.txt" For Input As #1
-
- For i = 1 To 10 Step 1
- Line Input #1, s
- Debug.Print s
- Next i
-
-
- Close #1
-
-
- End Sub
往里写内容(可以用 write 或 print ?)
- Sub test_jackma1()
-
- Dim s As String
-
- Open "C:\Users\Administrator\Desktop\test101.txt" For Append As #1
-
- Write #1,
- Write #1, 888
- Write #1, 999
-
- Close #1
-
- End Sub
open "" for append 会在最后一行直接追加(可以用 write 或 print ?)
- Sub test300()
-
- Open "C:\Users\Administrator\Desktop\test101.txt" For Append As #1
- Print #1, "a,b,c"
- Close #1
-
- End Sub
open "" for output 会覆盖文件内容
- Sub test300()
-
- Open "C:\Users\Administrator\Desktop\test101.txt" For Output As #1
- Print #1, "5"
- Close #1
-
- End Sub
- Sub jackma2()
- Dim fso1, f1
- Set fso1 = CreateObject("Scripting.FileSystemObject")
- Set f1 = fso1.OpenTextFile("C:\Users\Administrator\Desktop\test101.txt", 8, TristateFalse)
- 'f1.Write ' write 这样会报错
- f1.Writeline 'writeline这样是可以的
- f1.Writeline "Hello world!"
- 'f1.Print "Hello world!" '没有这样的方法 fso.print
- f1.Close
- End Sub
- Sub jackma2()
- Dim fso1, f1
- Dim x1
-
- Set fso1 = CreateObject("Scripting.FileSystemObject")
- Set f1 = fso1.OpenTextFile("C:\Users\Administrator\Desktop\test101.txt", 1, False)
-
- x1 = f1.readline
- Debug.Print x1
-
- f1.Close
- End Sub
- Sub jackma2()
- Dim fso1, f1
- Dim x1
-
- Set fso1 = CreateObject("Scripting.FileSystemObject")
- Set f1 = fso1.OpenTextFile("C:\Users\Administrator\Desktop\test101.txt", 1, False)
-
- x1 = f1.readline
- Debug.Print x1
- f1.skipline
- x1 = f1.readline
- Debug.Print x1
- f1.Skip 1
- x1 = f1.readline
- Debug.Print x1
-
- f1.Close
- End Sub
- '这一段是微软的手册的官方介绍
- Open "TESTFILE" For Output As #1 ' Open file for output.
- Print #1, "This is a test" ' Print text to file.
- Print #1, ' Print blank line to file.
- Print #1, "Zone 1"; Tab ; "Zone 2" ' Print in two print zones.
- Print #1, "Hello" ; " " ; "World" ' Separate strings with space.
- Print #1, Spc(5) ; "5 leading spaces " ' Print five leading spaces.
- Print #1, Tab(10) ; "Hello" ' Print word at column 10.
- Sub jackma3()
-
- Workbooks.OpenText Filename:="C:\Users\Administrator\Desktop\test101.txt"
- '只能是 workbooks.opentext
- '不能是 thisworkbook.opentext 或者 activeworkbook.opentext
-
- End Sub
会生成1个新EXCEL表,也就是所谓的 workbook,同时把这个txt 读入到第一个sheet里,sheet命名,内容都读txt的
_Object_参数始终是**TextStream** 对象的名称。
- Sub OpenTextFileTest
- Const ForReading = 1, ForWriting = 2, ForAppending = 8
- Dim fs, f
- Set fs = CreateObject("Scripting.FileSystemObject")
- Set f = fs.OpenTextFile("c:\testfile.txt", ForAppending, TristateFalse)
- f.Write "Hello world!"
- f.Close
- End Sub
FilesystemObject .OpenTextFile 默认会用系统的编码读取文本,默认一般都是ANSI,想改成中文也正常显示,必须把文本转换成Unicode,同时OpenTextFile方法也设置成Unicode的方法读取。
OpenTextFile方法
该方法可以打开指定的文件并返回一个TextStream对象,可以读取此对象或将其追加到文件中。语法如下:
Object.OpenTextFile(filename[,iomode[,create[,format]]])
OpenTextFile方法的参数说明
CreateTextFile 方法
写文件默认也不支持中文编码,用ASCII写中文字符的时候可能会报错,也一样要设置CreateTextFile 方法的编码。
FileSystemObject.CreateTextFile(filename[,overwrite[,unicode]])
FolderObject.CreateTextFile(filename[,overwrite[,unicode]])
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。