admin 管理员组

文章数量: 1086019


2024年1月10日发(作者:windows连接ssh)

vba 读取txt加减乘除运算

读取txt文件内容方法:

input:从文件中读取指定数量的字符。

Input #:把数据读出放在变量里,变量用逗号分隔

Line Input #:取出完整的一行

搭配使用到的两个函数:

EOF(文件编号) 返回文本文件结尾。

LOF(文件编号) 判断文本文件的长度。

一、Input读取方式

Input 函数只用于以 Input 或 Binary 方式打开的文件,返回它所读出的所有字符,包括逗号、回车符、空白列、换行符、引号和前导空格等。

例1:读取,返回每个字符及其Asc值。

Sub d1()

On Error Resume Next '出现错误跳转到下一步

Dim f, mychar

f = & "/"

Open f For Input As #1

Do While Not EOF(1) '循环至文件尾,EOF文件结尾

mychar = Input(3, #1) '读入一个字符

mychar & ":" & Asc(mychar)'显示到立即窗口。

Loop '按顺序读取,到下一个字符串,直至文件都读取完毕

Close #1

End Sub

运行结果

例2:把的内容一次性读取出来。

Sub d2()

Dim f, mychar, n, L

f = & "/"

n = FreeFile '所有文本内容

Open f For Input As n

L = LOF(n) 'LOF判断文本文件的长度(字节)

mychar = Input(L - 6, n) '要减去中文字符的个数(见下方注释)

mychar '显示到立即窗口。

Close #1

End Sub

注释:LOF判断文本文件的长度是字节数,并非字符个数。英文和数字都是一个字节,中文是两个字节,而inpt是输出字符个数,所以要用字节数将去中文字符个数才能得到总的字符个数。

运行结果

二、Input#读取方式

nput #读取

input 文件号(#…),变量1,变量2,..变量N

input #常用来读取write写的内容(分隔符为逗号,加双引号) 读非write文件会乱位。(write文件详见上篇笔记。

例3:用input #方式读取。

Sub d3()

Dim f, x

f = & ""

Open f For Input As #1

Do While Not EOF(1) '读取文本直至文本结尾

Input #1, x

x

Loop

Close #1

End Sub

运行结果:

可以看到入库日期不准确,数据位置也有些错位,那是因为不是write写入的文件。

那么我们换一个write写入的文件。

例4:用input #方式读取。

复习:write写入的文本,会自动生成逗号分隔数据,字符串被加双引号,日期会被两个#号包围。

Sub d4()

Dim f, y1, y2, y3, y4, y5

f = & ""

Open f For Input As #1

Do While Not EOF(1) '循环到文本结尾

Input #1, y1, y2, y3, y4, y5 '一起获取同一行的五个数据,然后用空格分隔,在立即窗口输出

y1 & " " & y2 & " " & y3 & " " & y4 & " " &

y5

Loop

Close #1

End Sub

运行结果:

自动去除了多余的符号,只留下数据。

三、Line Input读取方式

Line Input 文件号,变量 取出完整的一行。

例5:用Line Input方式读取。(write写入的文本)

Sub d5()

Dim f, sr

f = & ""

Open f For Input As #1

Do While Not EOF(1)

Line Input #1, sr

sr

Loop

Close #1

End Sub

运行结果:

将所有文本内容一字不差地全部读取,没有去除write写入的符号,所以Line Input不适合write写入的文本。

1、首先选中Excel表格,双击打开。

2、然后在该界面中,选中要显示公式计算加减乘除混合运算结果的单元格。

3、然后在该界面中,公示栏中输入加减乘除混合运算的公式,如“= (A1+A2-A3)*A4/A5”。 4、其次在该界面中,点击“确定”按钮。


本文标签: 读取 字符 文件 文本 逗号