zoukankan      html  css  js  c++  java
  • Excel读取Word Table元素

     1 Option Explicit
     2 
     3 Sub Mian()
     4 Application.ScreenUpdating = False
     5 Application.DisplayAlerts = False
     6 Application.EnableEvents = False
     7 Application.StatusBar = True
     8 Dim Path$, File$, WordApp, Dic, Br(1 To 10000, 1 To 14)
     9     Path = ThisWorkbook.Path & ""
    10     File = Dir(Path & "学生学籍卡.doc*")
    11     Set Dic = Data()
    12     Set WordApp = CreateObject("Word.Application")
    13     WordApp.Visible = False
    14     Dim Table, Doc, RKey, Ckey, K&, KK&, eTable
    15 
    16     '=遍历Word的table
    17     Set Doc = WordApp.Documents.Open(Path & File)
    18     For Each Table In Doc.Tables
    19     K = K + 1
    20         With Table
    21         '读取子table
    22          Set eTable = Table.cell(10, 2).Tables(1)
    23          Br(K, 9) = Replace(eTable.cell(2, 2).Range.Text, "", "")
    24          Br(K, 10) = Replace(eTable.cell(2, 3).Range.Text, "", "")
    25          Br(K, 11) = Replace(eTable.cell(3, 2).Range.Text, "", "")
    26          Br(K, 12) = Replace(eTable.cell(3, 3).Range.Text, "", "")
    27         KK = 0
    28         '读取Table
    29             For Each RKey In Dic.keys
    30                 For Each Ckey In Dic(RKey).keys
    31                 KK = KK + 1
    32                     Br(K, KK) = Replace(.cell(RKey, Ckey).Range.Text, "", "")
    33                     If KK = 8 Then KK = KK + 4
    34                 Next
    35             Next
    36         End With
    37     Next
    38     Doc.Close
    39     WordApp.Visible = True
    40     WordApp.Quit
    41     Set WordApp = Nothing
    42     Range("a2").Resize(K, 14) = Br
    43     MsgBox "读取数据成功"
    44     Application.StatusBar = False
    45     Application.EnableEvents = True
    46     Application.ScreenUpdating = True
    47     Application.DisplayAlerts = True
    48 End Sub
    49 
    50 
    51 Private Function Data()
    52 Dim Ar, Dic, I&, J&
    53     Ar = Sheets("取数规则").Range("a1").CurrentRegion
    54     Set Dic = CreateObject("Scripting.Dictionary")
    55     For I = 2 To UBound(Ar)
    56     Set Dic(Ar(I, 1)) = CreateObject("Scripting.Dictionary")
    57         For J = 2 To UBound(Ar, 2)
    58             If Ar(I, J) <> "" Then
    59                 Dic(Ar(I, 1))(Ar(I, J)) = True
    60             End If
    61         Next J
    62     Next
    63     Set Data = Dic
    64 End Function
  • 相关阅读:
    4G(LTE)背后的技术和利益纠结——VoIP,VoLTE,SIP,IMS的前世今生
    Windows抓取本地回环数据包
    SIP中的早期媒体与回铃音的产生
    SpringMVC整合
    浮点数转换为十进制
    将Sublime Text 2搭建成一个好用的IDE
    python3 'gbk' codec can't decode byte 0x80 in position 读取文件编码集错误的一个bug
    Matplotlib入门教程
    turtle教程-Python绘图
    python画图模块之一:turtle(1) 画五角星、正方形等
  • 原文地址:https://www.cnblogs.com/Ionefox/p/10446417.html
Copyright © 2011-2022 走看看