| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 4591 人关注过本帖, 1 人收藏
标题:请问如何依次/循环读取同一个文件夹下不同的txt文件并依次写入???
只看楼主 加入收藏
jeamourvous
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2016-9-21
结帖率:100%
收藏(1)
已结贴  问题点数:20 回复次数:7 
请问如何依次/循环读取同一个文件夹下不同的txt文件并依次写入???
请教专家:我的需求大致是:在一个excel中,需要将工作表1中第11-123行每行的内容单独依次复制到该表的第2行,然后工作表2中固定单元格区域的数据自动变化,此时就需要把部分数据复制,然后再粘贴到文本文件中就算完事了。我事先已经建立了空白的文本文件,名称为01.txt、02.txt、03.txt……112.txt,想用VB程序一次性完成,现在遇到的问题就是如何依次打开这些文件,然后粘贴每次复制的内容保存关闭。由于是初学,请勿见怪。

编的代码是:

Private Sub Command1_Click()
 Dim i, n, a
    n = 0
 Set xlapp = CreateObject("Excel.Application") '创建EXCEL对象
 Set xlbook = xlapp.Workbooks.Open("f:\01.xls") '新建EXCEL工件簿文件
 xlapp.Visible = True '设置EXCEL对象可见(或不可见)
 xlbook.Sheets("参数").Activate
    For i = 11 To 15
    n = n + i
    Rows(n).Select
    Selection.Copy
    Rows("2:2").Select
    ActiveSheet.Paste
    Sheets("一元方程表").Select
    Range("E22:R92").Select
    Application.CutCopyMode = False
    Selection.Copy
  
 a = Clipboard.GetText
   
    Open "f:\001\10.txt" For Output As #1
     
   Print #1, a
 Clipboard.Clear
 Close #1
 Next i
End Sub

问题很多,麻烦大家了
搜索更多相关主题的帖子: 文本文件 文件夹 工作表 excel 如何 
2016-09-21 21:04
xiangyue0510
Rank: 14Rank: 14Rank: 14Rank: 14
等 级:贵宾
威 望:86
帖 子:941
专家分:5244
注 册:2015-8-10
收藏
得分:15 
试试这个

Private Sub Command1_Click()
 Dim i, n, a
    n = 0
 Set xlapp = CreateObject("Excel.Application") '创建EXCEL对象
 Set xlbook = xlapp.Workbooks.Open("f:\01.xls") '新建EXCEL工件簿文件
 xlapp.Visible = True '设置EXCEL对象可见(或不可见)
 xlbook.Sheets("参数").Activate
    For i = 11 To 15
    n = n + i
    Rows(n & ":" & n).Select   '修改了这句
    Selection.Copy
    Rows("2:2").Select
    ActiveSheet.Paste
    Sheets("一元方程表").Select
    Range("E22:R92").Select
    Application.CutCopyMode = False
    Selection.Copy
  
    a = Clipboard.GetText
   
    Open "f:\001\" & i & ".txt" For Output As #1    '修改了这句, 另外txt不需要提前建立
     
   Print #1, a
 Clipboard.Clear
 Close #1
 Next i
End Sub
2016-09-22 08:47
jeamourvous
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2016-9-21
收藏
得分:0 
回复 2楼 xiangyue0510
非常谢谢您,就是要这种效果。但还有个问题: 剪贴板的内容没有发生变化,生成的文本文件内容都是一样的,请问有什么办法吗?
2016-09-22 09:45
xiangyue0510
Rank: 14Rank: 14Rank: 14Rank: 14
等 级:贵宾
威 望:86
帖 子:941
专家分:5244
注 册:2015-8-10
收藏
得分:2 
剪贴板没有操作过,好像代码本身没有问题。建议见中断,每次看一下Range("E22:R92")的数值变化情况。
2016-09-22 09:52
jeamourvous
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2016-9-21
收藏
得分:0 
回复 4楼 xiangyue0510
刚才又实验了一下,发现问题是重复的时候没有激活相应的工作表,所以我把xlbook.Sheets("方程参数").Activate放到了循环里面,之后生成的每个文本文件内容都不一样了,但就是没有按照顺序来,而且复制的行数有的也不在11到15行中。请您再帮忙看看是不是循环哪里还可以完善一下,无论怎样都要谢谢您!

  For i = 11 To 15
    n = n + i
    xlbook.Sheets("方程参数").Activate
    Rows(n & ":" & n).Select   '修改了这句
    Selection.Copy
    Rows("2:2").Select
    ActiveSheet.Paste
    Sheets("排版用一元有方程").Select
    Range("E22:R92").Select
    Application.CutCopyMode = False
    Selection.Copy
    a = Clipboard.GetText
   
2016-09-22 10:28
jeamourvous
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2016-9-21
收藏
得分:0 
回复 4楼 xiangyue0510
问题解决了,是我多此一举加了一个变量n,删除就好了,毕竟10多年没用VB了,都忘记得差不多了。
不过还得请教您一下,怎样才能把下图中文本框中输入的行数变量赋给 “生成TXT文件”命令按钮呢,就是命令健代码中输入的 i 值?

图片附件: 游客没有浏览图片的权限,请 登录注册
2016-09-22 11:13
xiangyue0510
Rank: 14Rank: 14Rank: 14Rank: 14
等 级:贵宾
威 望:86
帖 子:941
专家分:5244
注 册:2015-8-10
收藏
得分:3 
你这真的是完完全全的退给老师了。
dim i1 ,i2 as integer
i1=text1.text
i2=text2.text
for i=i1 to i2
……
2016-09-22 14:06
jeamourvous
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2016-9-21
收藏
得分:0 
回复 7楼 xiangyue0510
确实是,谢谢您
2016-09-22 14:12
快速回复:请问如何依次/循环读取同一个文件夹下不同的txt文件并依次写入???
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017018 second(s), 10 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved