20170706xlVBA批量提取word表格中的自我评分

  单位里普遍存在各种低效率的办公行为,比如每年的自我评分。评分细目表为word文档,每行一个项目,每个项目要填写得分事项和分值,组长审核之后转成Excel向上递交。主要涉及到问题就是word文档中一列得分要转成Excel一行内容,如果一个人就复制,粘贴到Excel,再复制,转置即可。人一多,显得很麻烦。于是写了一段VBA来处理,在此保留备份。

  

Sub 汇总个人评分()
    Dim FolderPath$, FileName$, FilePath$
    Dim wdApp As Object
    Dim Doc As Object
    Dim Tbl As Object
    Dim index&, iRow&, iCol&
    
    
    Cells.ClearContents
    
    Set wdApp = CreateObject("Word.Application")
    FolderPath = ThisWorkbook.Path & "\"
    FileName = Dir(FolderPath & "*.doc*")
    
    iRow = 0
    Do While FileName <> ""
        iRow = iRow + 1
        FilePath = FolderPath & FileName
        Set Doc = wdApp.documents.Open(FilePath)
        Set Tbl = Doc.Tables(1)
        
        Cells(iRow, 1).Value = WithNoSymbol(tb.Cell(1, 2).Range.Text)
        iCol = 1
        For index = 3 To 26
            iCol = iCol + 1
            Cells(iRow, iCol).Value = WithNoSymbol(tb.Cell(index, 5).Range.Text)
        Next index
        
        iCol = iCol + 1
        'Cells(iRow, iCol).Value = WithNoSymbol(tb.Cell(27, 9).Range.Text)
        Doc.Close
        FileName = Dir
    Loop
    wdApp.Quit
    Set wdApp = Nothing
    
End Sub
Function WithNoSymbol(ByVal OrgStr As String) As String
    WithNoSymbol = Left(OrgStr, Len(OrgStr) - 2)'去除Word文档单元格后面加上两个符号
End Function

  

 

posted @ 2017-07-06 00:11  wangway  阅读(508)  评论(0编辑  收藏  举报