ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

求助!Word读入TXT文档数据的问题

[复制链接]

TA的精华主题

TA的得分主题

发表于 2018-1-18 19:41 | 显示全部楼层 |阅读模式
本帖最后由 f0229f0229 于 2018-1-19 13:29 编辑

我需要用Word读入TXT文档中的数据来编辑,但是一直找不到一段合适的VBA程序,复制粘贴又太麻烦,网上和论坛里搜索好久,发现这方面的资料很少,最后找到3种方法,1,通过“插入”--“对象”等操作来录制宏,但是也要在页面上手动复制粘贴,2,通过”插入数据库“---”获得数据源“等操作来录制宏,这两种方法都有一个最重要的问题,需要指定一个固定的TXT文件名,但是我需要导入到Word中的TXT文件名是不固定的,我自己又不会修改Word录制的宏,3,写代码,我在网上找到几段VBA代码,都不适合我的要求或运行出错,所以请高手给写个程序,主要要求是可以弹窗自己选择目标文件,或者是给指点一下如何修改自己录制的宏里如何修改代码才可以弹窗自己选择目标文件,这些都比较难,我希望能有高手写出好代码能分享给更多的朋友使用,先谢了!
以下是我要用的TXT文档内的一部分内容,因上传不了附件和图片,还请谅解。
1 2 4 6 16 24 25 30
1 2 4 6 16 24 26 29
1 2 4 6 16 24 27 28
1 2 4 6 16 25 26 28
1 2 4 6 17 19 29 30
1 2 4 6 17 20 28 30
1 2 4 6 17 21 27 30
1 2 4 6 17 21 28 29
1 2 4 6 17 22 26 30
1 2 4 6 17 22 27 29
1 2 4 6 17 23 25 30
1 2 4 6 17 23 26 29
1 2 4 6 17 23 27 28
1 2 4 6 17 24 25 29
1 2 4 6 17 24 26 28
1 2 4 6 17 25 26 27
这是我在论坛里搜到的一个程序,运行到Selection.TypeText f1.Readall,提示:输入超出文件尾
Sub 依次读文本()
       Dim fs1, f1
       Set fs1 = CreateObject("Scripting.FileSystemObject")
       文本文件路径 = "你的路径" '比如"E:\桌面\WORD利用VBA按文本序号导入文本\"
       文本文件个数 = 4
       For i = 1 To 文本文件个数
        file1 = 文本文件路径 & i & ".文本.txt"
         Set f1 = fs1.OpenTextFile(file1, 1, 0)
         Selection.TypeText f1.Readall
         Selection.TypeParagraph
         f1.Close
       Next i
       Set f1 = Nothing
       Set fs1 = Nothing
End Sub

TA的精华主题

TA的得分主题

发表于 2018-1-18 19:50 来自手机 | 显示全部楼层
论坛多得很的类似代码。。。。。

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-1-18 21:39 | 显示全部楼层
duquancai 发表于 2018-1-18 19:50
论坛多得很的类似代码。。。。。

请你 写一个适合我用的代码,谢谢

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-1-19 09:49 | 显示全部楼层

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-1-20 15:48 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
请高手指导一下,谢谢

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-1-21 10:04 | 显示全部楼层

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-1-22 21:36 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
定一下,就没有高手相助吗

TA的精华主题

TA的得分主题

发表于 2018-1-22 22:22 | 显示全部楼层
本帖最后由 leikaiyi123 于 2018-1-23 08:39 编辑

这个不知是否适合你:
Sub 选择打开txt读入数据()    '选择文件
    Dim i As Integer
    Dim MyDialog As FileDialog, vrtSelectdeItem As Variant, Doc As Document
    On Error Resume Next
    '定义一个文件选取对话框
    'Application.ScreenUpdating = False
    Set MyDialog = Application.FileDialog(msoFileDialogFilePicker)
    With MyDialog
        .Filters.Clear  '清除所有文件筛选器中的项目
        .Filters.Add "所有 txt 文件", "*.txt", 1   '增加筛选器的项目为所有txt文件
        .AllowMultiSelect = True                    '允许多项选择,若为false则一次只能选一个txt文件
        If .Show = -1 Then
            For Each vrtselecteditem In .SelectedItems  '在所有选取文件中循环
                Open vrtselecteditem For Input As #1    '逐一打开选择的txt文件
                arr1 = Split(StrConv(InputB(LOF(1), 1), vbUnicode), vbCrLf): Reset    '将txt文件中的每一行读入数组arr1中
                Close #1
                For i = 0 To UBound(arr1)
                    'Debug.Print arr1(i)    '显示数组中的每一个元素,根据需要处理你的数据即可
                    Selection.TypeText Text:=arr1(i) & Chr(13)
                Next i
                '////////////////////////////////////////
            Next vrtselecteditem
        End If
    End With
    'Application.ScreenUpdating = True
End Sub






选择打开txt读入数据.rar

8.52 KB, 下载次数: 7

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-1-22 23:20 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
leikaiyi123 发表于 2018-1-22 22:22
这个不知是否适合你:
Sub 选择打开txt读入数据()    '选择文件
    Dim i As Integer

你好,程序运行时有问题,运行到弹窗选好文档点击确定后就没有反应了,文档内容并没有读取到Word里,你使用的时候也这样吗

TA的精华主题

TA的得分主题

发表于 2018-1-23 08:30 来自手机 | 显示全部楼层
本帖最后由 leikaiyi123 于 2018-1-23 08:42 编辑

你不明白这句吗?Debug.Print arr1(i)    '显示数组中的每一个元素,根据需要处理你的数据即可
按ctr+G看看立即窗口,读到word还不容易?比如将此句换成Selection.TypeText Text:=arr1(i) & Chr(13) 试试?见8楼红色。
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2025-1-12 07:46 , Processed in 0.028006 second(s), 12 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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