ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] 求教各位大神!提取word表格内容时能不能保留原字体颜色

[复制链接]

TA的精华主题

TA的得分主题

发表于 2024-3-29 21:07 | 显示全部楼层 |阅读模式
求教各位大神!
批量提取word表格内容时能不能保留原字体颜色。。

如附件:word表格中的姓名是栏 字体是有颜色的
             汇总到excel表格中能不能保留原来的颜色。。。

附件.zip

55.55 KB, 下载次数: 11

TA的精华主题

TA的得分主题

发表于 2024-3-29 21:12 | 显示全部楼层
附件中的excel文件损坏,无法打开

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2024-3-29 21:40 来自手机 | 显示全部楼层

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-3-29 21:45 | 显示全部楼层
  1. [code]Private Sub CommandButton1_Click()
  2.   On Error Resume Next
  3.   Dim wordapp As Object, mytab As Object
  4.   Dim mydoc
  5.   Dim dirpath$, myfile$, docname$
  6. '创建wor d应用程序对象
  7.   Set wordapp = CreateObject("word.application")
  8. '定义wor d文件存放路径
  9. dirpath = ThisWorkbook.Path & "/word/"

  10. myfile = Dir(dirpath & "*.docx")

  11. i = 2
  12. '循环读取文件夹下文档
  13. Range("a2:h10000").ClearContents

  14. Do While myfile <> ""

  15.    Set mydoc = wordapp.Documents.Open(dirpath & myfile)
  16.    Set mytab = mydoc.tables(1)

  17.     Cells(i, 1) = tt(mytab.Cell(1, 2).Range.Text)
  18.     Cells(i, 2) = tt(mytab.Cell(1, 4).Range.Text)
  19.     Cells(i, 3) = tt(mytab.Cell(2, 2).Range.Text)
  20.     Cells(i, 4) = tt(mytab.Cell(2, 4).Range.Text)
  21.     myfile = Dir
  22.     i = i + 1
  23.     Loop

  24. mydoc.Close False
  25. wordapp.Quit
  26. End Sub
复制代码

附件1.zip

54.62 KB, 下载次数: 6

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-3-29 21:46 | 显示全部楼层
liulang0808 发表于 2024-3-29 21:12
附件中的excel文件损坏,无法打开
  1. [code][code]Private Sub CommandButton1_Click()
  2.   On Error Resume Next
  3.   Dim wordapp As Object, mytab As Object
  4.   Dim mydoc
  5.   Dim dirpath$, myfile$, docname$
  6. '创建wor d应用程序对象
  7.   Set wordapp = CreateObject("word.application")
  8. '定义wor d文件存放路径
  9. dirpath = ThisWorkbook.Path & "/word/"

  10. myfile = Dir(dirpath & "*.docx")

  11. i = 2
  12. '循环读取文件夹下文档
  13. Range("a2:h10000").ClearContents

  14. Do While myfile <> ""

  15.    Set mydoc = wordapp.Documents.Open(dirpath & myfile)
  16.    Set mytab = mydoc.tables(1)

  17.     Cells(i, 1) = tt(mytab.Cell(1, 2).Range.Text)
  18.     Cells(i, 2) = tt(mytab.Cell(1, 4).Range.Text)
  19.     Cells(i, 3) = tt(mytab.Cell(2, 2).Range.Text)
  20.     Cells(i, 4) = tt(mytab.Cell(2, 4).Range.Text)
  21.     myfile = Dir
  22.     i = i + 1
  23.     Loop

  24. mydoc.Close False
  25. wordapp.Quit
  26. End Sub
复制代码
[/code]

大神有空麻烦再试下附件1

TA的精华主题

TA的得分主题

发表于 2024-3-30 12:16 | 显示全部楼层
Option Explicit
Sub TEST()
    Dim ar, br, i&, j&, r&, wdApp As Word.Application, strFileName$, strPath$
   
    Application.ScreenUpdating = False
    ReDim ar(1 To 2, 3)
    br = Array(2, 4, 6, 8)
    [A1].CurrentRegion.Offset(1).ClearContents
    r = 1
   
    On Error Resume Next
    Set wdApp = GetObject(, "Word.Application")
    If Err <> 0 Then
        Set wdApp = New Word.Application
    End If
   
    strPath = ThisWorkbook.Path & "\word\"
    strFileName = Dir(strPath & "*.doc*")
    Do Until strFileName = ""
        With wdApp.documents.Open(strPath & strFileName)
            With .tables(1)
                For j = 0 To UBound(br)
                    ar(1, j) = Left(.Range.Cells(br(j)).Range.Text, Len(.Range.Cells(br(j)).Range.Text) - 2)
                    ar(2, j) = .Range.Cells(br(j)).Range.Font.Color
                Next j
            End With
            .Close False
        End With
        r = r + 1
        For j = 0 To UBound(ar, 2)
            Cells(r, j + 1).Value = ar(1, j)
            Cells(r, j + 1).Font.Color = ar(2, j)
        Next j
        strFileName = Dir
    Loop
        
    If Err <> 0 Then wdApp.Quit
    Set wdApp = Nothing
    Application.ScreenUpdating = True
    Beep
End Sub

评分

2

查看全部评分

TA的精华主题

TA的得分主题

发表于 2024-3-30 12:17 | 显示全部楼层
请参考。、、

附件.rar

54.83 KB, 下载次数: 6

TA的精华主题

TA的得分主题

发表于 2024-3-30 12:46 | 显示全部楼层
加一名代码:
Cells(i, 1).Font.Color = mytab.cell(1, 2).Range.Font.Color

评分

1

查看全部评分

您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-17 21:25 , Processed in 0.045344 second(s), 12 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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