写⼊⽂件_VBA学习笔记51:TXT⽂件的写⼊
学习资源:《Excel VBA从⼊门到进阶》第51集 by兰⾊幻想
本节学习TXT⽂件的写⼊,⾸先学习⼀些基础语句。
打开⽂件: Open ⽂件名 for 打开⽅式 as #⽂件编号
⽂件编号是为了⽅便后续在代码中简写⽂件名;⽽打开⽅式
打开⽅式有三种:
其中⽂件编号
1. Input:只能读,不能写。
2. Append:允许读也允许写,如果存在⽂件就追加记录,如果没有就新建⽂件。
3. Output:可以读,也可以写,但总会把原来的同名⽂件删除,再新建⼀个。
读取txt⽂件内容的⽅法
读取txt⽂件内容的⽅法:
1. input:从⽂件中读取指定数量的字符。
2. Input #:把数据读出放在变量⾥,变量⽤逗号分隔。
3. Line Input #:取出完整的⼀⾏。
向⽂件中写⼊数据
写⼊数据:
1. write #:向⽂件中写⼊值,值⽤引号引起来。如果想在同⼀⾏中继续写⼊,可以在前⼀次写时结尾添加“;”分号。
2. Print #:向⽂件中写⼊值,如果想在同⼀⾏中继续写⼊,可以在前⼀次写时结尾添加“;”分号。
3. 字符的间隔符,Spc(n)表⽰输⼊n个空字符。
下⾯我们来举例学习:
⼀、⽤Print写⼊。
1. 分⾏输⼊
Sub t1()
Dim f As String
f = ThisWorkbook.path & "a.txt"
Open f For Output As #1 '打开a.txt,指定⽂件编号为#1
Print #1, "产品名称" '在#1⽂件中写⼊“产品名称”
Print #1, Date '在#1⽂件中下⼀⾏写⼊⽇期
Close #1 '关闭#1⽂件
运⾏前的a.txt⽂件:
运⾏后:
因为打开⽅式写的是output,output总会把原来的同名⽂件删除,再新建⼀个。所以能看到原来a.txt的内容都被删除了。另外使⽤⽂件编号,也让代码变得更加清晰可读。
2. 在同⼀⾏输⼊
Sub t2()
Dim f As String
f = ThisWorkbook.path & "a.txt"
Open f For Output As #1
Print #1, "产品名称"; '←变化在这⼀句
Print #1, "A产品"
Close #1
End Sub
在第⼀⾏内容"产品名称"后⾯加上了分号";"。
运⾏前是上列运⾏后的样⼦,点击运⾏程序:
"产品名称"
"产品名称"和"A产品"连在⼀列写了,中间没有任何间隙和分隔。
3. 输⼊时添加空格符
Sub t3()
Dim f As String
f = ThisWorkbook.path & "a.txt"
Open f For Output As #1
Print #1, "产品名称"; Spc(5); '←变化在这⼀句
Print #1, "A产品"
Close #1
End Sub
"产品名称"和"A产品"之间有五个空格。
4. 在指定的列数输⼊
Sub t4()
Dim f As String
f = ThisWorkbook.path & "a.txt"
vba自学好学吗Open f For Output As #1
Print #1, "产品名称"; Tab(8); '在第⼋个字符的位置输⼊下⼀个字符串Print #1, "A产品"
Close #1
End Sub
这⾥的第⼋个字符位置是从“产”字开始算,和空格不同。
运⾏程序:
"产品名称"和"A产品"只有三个空格。
⼆、⽤Write写⼊
1. 分⾏输⼊
和上例⼀样,不过把print改写为write。
Sub t5()
Dim f As String
f = ThisWorkbook.path & "a.txt"
Open f For Output As #1
Write #1, "产品名称"
Write #1, 5
Close #1
End Sub
运⾏结果:
输出的字符串含双引号,但输出数字不会有双引号。
2. 在同⼀⾏输⼊
Sub t6()
Dim f As String
f = ThisWorkbook.path & "a.txt"
Open f For Output As #1
Write #1, "产品名称";
Write #1, 5
Close #1
End Sub
运⾏结果:
⾃动⽣成逗号作为分隔。
输出:"产品名称",5 ⾃动⽣成逗号作为分隔。
那试着把"产品名称"和5写在代码的同⼀⾏呢?——那试着把
Sub t7()
Dim f As String
f = ThisWorkbook.path & "a.txt"
Open f For Output As #1
Write #1, "产品名称".5
Close #1
End Sub
write语句中的"产品名称"和5是⽤逗号隔开。
运⾏结果:
这⾥逗号相当于分号的⽤法,所以获得的结果和t6⼀样。——那⽤分号隔开呢?
Write #1, "产品名称";5
运⾏结果:
获得⼀样的结果。
——那⽤空格隔开呢?
Write #1, "产品名称" 5
和分号、逗号的结果⼀样,在write⾥分号、逗号和空格会⾃动显⽰为 ","逗号。
三、Print和Write区别
1. 写到到txt⽂件后,write字符会添加“,”(逗号)。
2. 除⽂本外,⽇期、逻辑值输⼊结果不⼀样,write两边会加#号。
例: ⽤print和write分别向⽂档写⼊" Date; 1 = 1; Null "
Sub t8()
Dim f As String
f = ThisWorkbook.path & "a.txt"
Open f For Output As #1
Print #1, Date; 1 = 1; Null '1=1 在这边是⼀个逻辑值的判断,1=1为true
Write #1, Date; 1 = 1, Null
Close #1
End Sub
运⾏结果:
可以看到第⼀⾏print的结果是,直接输出语句,但第⼆⾏write的结果是,⽇期、逻辑值的结果都被#号包围。
四、不同类型数值的输⼊
write在同⼀句输⼊两个数值时,会⾃动加逗号作为分隔,那么print的规律是什么呢?
print遇到不同数据类型来显⽰的规律:
⽇期后会被加上空格
数字前后都被加上空格
字符前后均不会被加空格
例:⽤print向⽂档写⼊date;123;"你好呀"(⽇期、数字、字符)
Sub t9()
Dim f As String
f = ThisWorkbook.path & "a.txt"
Open f For Output As #1
Print #1, date;123;"你好呀"
Close #1
End Sub
运⾏结果:2020/7/23 123 你好呀
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论