ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 1017|回复: 4

[求助] 老师前辈们,如何批量txt数文本据写入已存在相对应的工作表?

[复制链接]

TA的精华主题

TA的得分主题

发表于 2018-8-28 11:22 | 显示全部楼层 |阅读模式
老师们中午好,最近自己在摸索查找字典vba代码,遇到了我之前没有遇到过的问题,能不能帮忙请老师们帮忙修改下vba代码?我在上传有附件,可以下载看看。 1.png

在打开excel 模版时候,里面有个工作表 Analyze Data  工作表,里面有个三个按钮。读取TXT,这个功能我能简单读写附件中文件夹1 里面的每个TXT文本内容到指定的工作表中的指定单元格,在Template 工作表  作为模版生成一个新的工作表。
2.png
问题来了,现在我想第二次读取其他内容,而又覆盖之前已存在工作表的内容,在存在的工作表指定位置增加数据,文件夹2的文件与文件夹中的数据是同步存在的。
3.png
先读取文件夹1再读取文件夹2.只是想在已存在的工作表中指定位置增添数据。
4.png


从工作表31行开始是是从文件夹2 读取的内容,该如何读取到指定单元格?S2,S3,S4,S5工作表又该如何循环读取呢?有没有大神愿意赐教?我好学,不耻下问。
工作表1-123.rar (172.6 KB, 下载次数: 8)

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-8-28 11:22 | 显示全部楼层
Sub readme()
Dim mypath As String
Dim stxt As String
Dim arr
Dim i
Dim sh As Worksheet
With Application.FileDialog(msoFileDialogFilePicker) 'Îļt¶Ô»°¿ò
    .AllowMultiSelect = True
    .Filters.Clear
    .Filters.Add "Îı¾ÎÄμμ", "*.txt"
    If .Show = -1 Then 'èç1ûÑ¡ÔñáËÎļt
    For i = 1 To .SelectedItems.Count 'Ñ-»·Ã¿¸öTXTÎļt
        mypath = .SelectedItems(i)
        'mypath = "è«Â·¾¶ÎļtÃû"
        Open mypath For Input As #1
        stxt = StrConv(InputB(LOF(1), 1), vbUnicode) '¶áè¡TXTÄúèY
        arr = Split(stxt, " =") 'SPLIToˉêy2e·Ö
        Debug.Print Val(Split(arr(1), vbCr)(0))
        Sheets("Template").Copy After:=Sheets(Sheets.Count) '¸′ÖÆò»·YÄ£°å  '(after:=Worksheets(Worksheets.Count))
        Set sh = Sheets(Sheets.Count)
        sh.Name = Split(Mid(mypath, InStrRev(mypath, "\") + 1, 99), ".txt")(0) '1¤×÷±íÃû3Æ
        sh.Cells(6, "I") = Split(Mid(mypath, InStrRev(mypath, "\") + 1, 99), ".txt")(0) 'txtÎļtÃû
        
        sh.Cells(22, 3) = Val(Split(arr(1), vbCr)(0)) '¶Ôó|μÄêy×ÖD′èëμ½μ¥Ôa¸ñ
        sh.Cells(22, 4) = Val(Split(arr(2), vbCr)(0))
        sh.Cells(22, 6) = Val(Split(arr(3), vbCr)(0))
        sh.Cells(22, 7) = Val(Split(arr(4), vbCr)(0))
        sh.Cells(22, 9) = Val(Split(arr(5), vbCr)(0))
        sh.Cells(22, 10) = Val(Split(arr(6), vbCr)(0))
        sh.Cells(22, 13) = Val(Split(arr(7), vbCr)(0))
        sh.Cells(22, 15) = Val(Split(arr(8), vbCr)(0)) ' ÕaêÇ22DD   8¸öêy¾Y  6.0
        
        sh.Cells(23, 3) = Val(Split(arr(9), vbCr)(0))
        sh.Cells(23, 4) = Val(Split(arr(10), vbCr)(0))
        sh.Cells(23, 6) = Val(Split(arr(11), vbCr)(0))
        sh.Cells(23, 7) = Val(Split(arr(12), vbCr)(0))
        sh.Cells(23, 9) = Val(Split(arr(13), vbCr)(0))
        sh.Cells(23, 10) = Val(Split(arr(14), vbCr)(0))
        sh.Cells(23, 13) = Val(Split(arr(15), vbCr)(0))
        sh.Cells(23, 15) = Val(Split(arr(16), vbCr)(0)) '  ÕaêÇ23DD   8¸öêy¾Y  6.0
        
        sh.Cells(30, 3) = Val(Split(arr(17), vbCr)(0))
        sh.Cells(30, 4) = Val(Split(arr(18), vbCr)(0))
        sh.Cells(30, 6) = Val(Split(arr(19), vbCr)(0))
        sh.Cells(30, 7) = Val(Split(arr(20), vbCr)(0))
        sh.Cells(30, 9) = Val(Split(arr(21), vbCr)(0))
        sh.Cells(30, 10) = Val(Split(arr(22), vbCr)(0))
        sh.Cells(30, 13) = Val(Split(arr(23), vbCr)(0))
        sh.Cells(30, 15) = Val(Split(arr(24), vbCr)(0))  'ÕaêÇ30DD    8¸öêy¾Y 18.05
        
        sh.Cells(26, 3) = Val(Split(arr(25), vbCr)(0))   'μú25¸öêy¾YD′èë
        sh.Cells(27, 3) = Val(Split(arr(26), vbCr)(0))    'ÕaêÇμú26¸öêy¾YD′èë
        sh.Cells(26, 4) = Val(Split(arr(27), vbCr)(0))
        sh.Cells(27, 4) = Val(Split(arr(28), vbCr)(0))
        sh.Cells(26, 6) = Val(Split(arr(29), vbCr)(0))
        sh.Cells(27, 6) = Val(Split(arr(30), vbCr)(0))
        sh.Cells(26, 7) = Val(Split(arr(31), vbCr)(0))
        sh.Cells(27, 7) = Val(Split(arr(32), vbCr)(0))    '27,26DDêy¾YD′èëÇ°4¸ö
        
        sh.Cells(26, 9) = Val(Split(arr(33), vbCr)(0))
        sh.Cells(27, 9) = Val(Split(arr(34), vbCr)(0))
        sh.Cells(26, 10) = Val(Split(arr(35), vbCr)(0))
        sh.Cells(27, 10) = Val(Split(arr(36), vbCr)(0))
        sh.Cells(26, 13) = Val(Split(arr(37), vbCr)(0))
        sh.Cells(27, 13) = Val(Split(arr(38), vbCr)(0))
        sh.Cells(26, 15) = Val(Split(arr(39), vbCr)(0))
        sh.Cells(27, 15) = Val(Split(arr(40), vbCr)(0))  '26£¬27DDêy¾Yoó4¸öD′èë
        
        sh.Cells(28, 3) = Val(Split(arr(41), vbCr)(0))
        sh.Cells(29, 3) = Val(Split(arr(42), vbCr)(0))  'ÕaêÇ28,29êy¾YD′èë
        sh.Cells(28, 4) = Val(Split(arr(43), vbCr)(0))
        sh.Cells(29, 4) = Val(Split(arr(44), vbCr)(0))
        sh.Cells(28, 6) = Val(Split(arr(45), vbCr)(0))
        sh.Cells(29, 6) = Val(Split(arr(46), vbCr)(0))
        sh.Cells(28, 7) = Val(Split(arr(47), vbCr)(0))
        sh.Cells(29, 7) = Val(Split(arr(48), vbCr)(0))
        
        sh.Cells(28, 9) = Val(Split(arr(49), vbCr)(0))
        sh.Cells(29, 9) = Val(Split(arr(50), vbCr)(0))
        sh.Cells(28, 10) = Val(Split(arr(51), vbCr)(0))
        sh.Cells(29, 10) = Val(Split(arr(52), vbCr)(0))
        sh.Cells(28, 13) = Val(Split(arr(53), vbCr)(0))
        sh.Cells(29, 13) = Val(Split(arr(54), vbCr)(0))
        sh.Cells(28, 15) = Val(Split(arr(55), vbCr)(0))
        sh.Cells(29, 15) = Val(Split(arr(56), vbCr)(0))
        
        Close #1 '1رÕTXTÎÄμμ
        'Debug.Print stxt
        Next i
    End If

End With

End Sub

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-8-28 11:26 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
这是我第一次导入文件夹1的代码,现在可以生成多个工作表了,那么文件夹2的数据又该怎么读取到相对应已存在的工作表中,仅仅增添数据,怎么才能判断文件夹2里面txt文本S2就写入到相对应的工作表S2的相对应的单元格。求助老师们,大牛们帮忙了。

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-8-28 11:28 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
文件夹2的数据按顺序放在一行8个放在对应的工作表中,能用简单的方法写下,好让我这小白好好理解下,适当写下注释,现在习惯写注释了。

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-8-28 11:32 | 显示全部楼层
我怕帖子沉,我自己顶一个,我在这里先谢谢大家了 。
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2025-1-13 02:55 , Processed in 0.023007 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表