ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 名课 - Power BI数据分析与可视化实战 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
Python自动化办公应用大全 Excel 2021函数公式学习大典 Kutools for Office 套件发布 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
楼主: yc-prc

[求助] word表格数据提取到excel

[复制链接]

TA的精华主题

TA的得分主题

 楼主| 发表于 2015-10-4 13:45 | 显示全部楼层

测试了一下,拷贝过来的都是乱码!!!

TA的精华主题

TA的得分主题

发表于 2015-10-4 14:52 | 显示全部楼层
yc-prc 发表于 2015-10-4 13:45
测试了一下,拷贝过来的都是乱码!!!

啊 不会吧 你怎样复制的  我测试好好的

TA的精华主题

TA的得分主题

发表于 2015-10-4 16:03 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
  1. Sub text()
  2.     Dim wd As New Word.Application
  3.     Dim arr(1 To 39, 1 To 14), i%, j%
  4.     On Error Resume Next
  5.     With CreateObject(ThisWorkbook.Path & "" & "1.doc")
  6.         For i = 1 To 39
  7.            For j = 1 To 14
  8.               arr(i, j) = Application.Clean(.tables(3).cell(i, j).Range.text)
  9.            Next
  10.         Next
  11.     End With
  12.     Cells.Clear
  13.     Range("A1").Resize(38, 14) = arr
  14.     wd.Quit
  15. End Sub
复制代码

TA的精华主题

TA的得分主题

发表于 2015-10-4 16:07 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
看你说只需要导入表格3,其实可以把所有的表格数据都导过来,加个循环就好了
以下只是导入表格3的数据

新建文件夹.rar (23.42 KB, 下载次数: 153)

评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2015-10-4 16:45 来自手机 | 显示全部楼层
闻启学 发表于 2015-10-4 14:52
啊 不会吧 你怎样复制的  我测试好好的

下了一个2007兼容包就好了!呵呵!我想自动以A1单元格为起始点,不然每次在运行程序前,都要用鼠标定位A1单元格,如果不这么做,粘贴的单元格一会儿在上,一会儿在右!忘记怎么搞了?

TA的精华主题

TA的得分主题

 楼主| 发表于 2015-10-4 17:44 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
本帖最后由 yc-prc 于 2015-10-4 17:47 编辑
huang1314wei 发表于 2015-10-4 16:07
看你说只需要导入表格3,其实可以把所有的表格数据都导过来,加个循环就好了
以下只是导入表格3的数据

打开出错!

找不到工程或库

找不到工程或库
无标题2.PNG

TA的精华主题

TA的得分主题

发表于 2015-10-4 17:47 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册

引用 里面需要勾选

123.jpg

TA的精华主题

TA的得分主题

 楼主| 发表于 2015-10-4 17:52 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
huang1314wei 发表于 2015-10-4 17:47
引用 里面需要勾选

好了!引用了一下11.0的,就OK了!~这个真好!就是要的这种效果。也是我所想要的代码。再来研究一下,应该就可以解决问题了!非常感谢哦!
无标题3.PNG

TA的精华主题

TA的得分主题

 楼主| 发表于 2015-10-4 21:00 | 显示全部楼层
huang1314wei 发表于 2015-10-4 16:07
看你说只需要导入表格3,其实可以把所有的表格数据都导过来,加个循环就好了
以下只是导入表格3的数据

Sub text()
    Dim wd As New Word.Application
    Dim arr(1 To 39, 1 To 14), i As Integer, j As Integer
    On Error Resume Next
    With CreateObject(ThisWorkbook.Path & "\" & "1.doc")
        For i = 1 To 39
           For j = 1 To 14
              arr(i, j) = Application.Clean(.tables(3).cell(i, j).Range.text)                          
               '请教,红色字体的这部分比较难以理解?  个人认为,应该是将word表格内数据赋值到变量数组
               '难理解的是    Application.Clean()   完全不懂!
                                                     .tables(3)   word中第三个表吗?   
                                                     .cell()    word表格中的单元格?   
                                                     .Range.text      text是单元格中的值?那这个Range是什么意思呢?
           Next
        Next
    End With
    Cells.Clear                   ’这里是EXCEL里的吧?
    Range("A1").Resize(38, 14) = arr
    Columns().AutoFit
    wd.Quit
End Sub


这个程序一点问题都没有,就是红色字体的部分不能理解!!!


谢谢回复!!!

TA的精华主题

TA的得分主题

发表于 2015-10-5 06:28 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
yc-prc 发表于 2015-10-4 21:00
Sub text()
    Dim wd As New Word.Application
    Dim arr(1 To 39, 1 To 14), i As Integer, j As  ...

你理解的都没有错,就是将word表格中的数据赋值给数组,然后一次性写入excel,其中的application.clean是引用工作表函数clean目的是清除一切非打印字符,因为word表格中每个单元格数据当中可能有回车换行符,这个如果不清除,写入excel就会有无关字符,比如一个大圆点,你可以试下,不加application.clean是什么效果

.tables(3)表示word当中从上往下,从左往右第3个表格,tables是word当中表格的集合
cell是table当中的一个对象,用 Cell(row, column) 或 Cells(index)可返回 Cell对象,其中 row 为行号,column 为列号,index 为索引序号
range.text是word VBA当中最常用的一个属性,相当于excel当中的value属性,返回或设置指定的区域或所选内容中的文本

cells.clear是清除工作表的内容,以便把数组赋值给单元格
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2025-12-25 06:10 , Processed in 0.027414 second(s), 15 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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