调试通过的例子的VBA代码如下图:
例子程序执行后,工作表的结果如下图:
程序文本代码如下,请把例子中的txt修改为amp:
Option Explicit
Sub 导入文件的第一行()
Dim p$, f$, i&, s$
p = "d:\doc\" '文件所在位置,必须以\结尾
f = Dir(p & "txt") '可能需要修改扩展名
While f <> ""
Open p & f For Input As #1
Input #1, s
Close #1
i = i + 1
Cells(i, 1) = f
Cells(i, 2) = s
f = Dir
Wend
End Sub
选中符合条件的数据,然后复制粘贴即可。以提取成绩为100的人的信息为例,具体 *** 作步骤如下:
1首先我们选中表格的第一行。
2然后选择菜单栏中的数据,并点击。
3在数据下功能选项中,选择自动筛选,并点击,这样表格首行都出现了下拉框。
4然后我们点击成绩下拉框,仅勾选成绩100后,点击下方的确定。
5我们就会看到表格中只有成绩是100的人的信息,选中该表格,并按Ctrl+C 复制该表格。
6最后将鼠标移动到其他区域,然后点击ctrl+V 粘贴,即可得到只含有成绩是100的人的信息的表格。
用Replace Pioneer按照第一列的内容对第二列累加,详细步骤: 1 ctrl-o打开文本文件atxt 2 ctrl-h打开replace窗口 replace unit选择Line 点击Advanced选项页 在insert begin text输入get_values_all() 在run following at the beginning of replace输入clear_values_all() 在run following for each matched unit输入set_value($match[1],get_value($match[1])+$match[2]); 3 点击Replace即可。 4 ctrl-s保存为btxt
用软件Replace Pioneer按照以下步骤:
1 ctrl-h打开replace窗口
2点击Advanced选项页,在run following for each matched unit输入:
my $a1=words(lines($match,4),5);
my $a2=words(lines($match,8),9);
my $a3=words(lines($match,10),11);
`echo $a1 >> d:\\test\\415N_125Etxt`;
`echo $a2 >> d:\\test\\415N_126Etxt`;
`echo $a3 >> d:\\test\\425N_126Etxt`;
(注意逗号和 °作为文件名会乱码,所以这里去掉了)
3点击Batch按钮打开batch runner窗口
4把待处理文件拖拽到batch runner窗口中
5选中Set output filename选项,把后面的内容比如${FILENAME}清空!
6点击Batch Replace即可。
注意:
提前备份,以防 *** 作失误。
第2步目录分隔符用双反斜线比如d:\\test\\,之前一定要建好d:\test目录
第2步可以自己按需扩充
运行前把已有的输出文件txt等清空
第5步一定要把${FILENAME}清空,否则源文件会被改写
另外,你的文件里必须有指定行列的内容,否则$a1, $a2, $a3都是空,导致echo后面没有参数,所以输出结果成了echo is on之类的内容。
各列之间必须用空格或制表符分隔。
a=open('atxt')readlines()
b=open('btxt')readlines()
alllines=list(zip(a,b))
for no in range(2,4): #下标从0开始,不包含上标,第三行到第四行为 2-4 ,
lines=alllines[no]
line=' 'join(line[8:12] for line in lines) #9-12个字符为8-12
print(line)
以上就是关于怎么用VBA批量提取文件包里面的文档第一行数据并导入excel,所有数据累积在一个excel全部的内容,包括:怎么用VBA批量提取文件包里面的文档第一行数据并导入excel,所有数据累积在一个excel、excel中如何提取满足多项检索条件的一整行数据、求高手:用VBA批量提取多个txt文件的每行指定数据等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)