zoukankan      html  css  js  c++  java
  • 【Word VBA】批量插入图片到表格

    房地一体项目需要的房屋照片表格

    Sub MainSub()
        Dim fso, path, fld, file, wd As Object
        Dim fd As FileDialog
        Dim i  As Integer
        Dim docName As String
        Dim thisDocPath As String
        
        thisDocPath = ThisDocument.FullName  '.path + "" + ThisDocument.Name
        Set fd = Application.FileDialog(msoFileDialogFolderPicker)
        If fd.Show = -1 Then
            Set fso = New FileSystemObject
            Set path = fso.GetFolder(fd.SelectedItems(1))
            For Each fld In path.SubFolders
                i = 0
                docName = fld.Name
                Call FillSurveyDate
                ' fill text
                Call FillFamilyHost(docName)
                'delete pictures
                Call DeletePics
                For Each file In fld.Files
                   i = i + 1
                   'insert pictures
                   Call InsertPics(i, file.path)
                Next
                'save as docx
                Call SaveAsDocx(path + "" + docName + ".docx")
            Next
        End If
        Set wd = ActiveDocument
        Application.Documents.Open thisDocPath
        wd.Close True
    End Sub
    Sub FillFamilyHost(str As String)
        Dim regEx As Object
        Set regEx = CreateObject("vbscript.regexp")
        With regEx
            .Global = 1
            .Pattern = "[x01-x7f]+"
            ThisDocument.Tables(1).Cell(2, 2).Range = .Replace(str, "")
        End With
        Set regEx = Nothing
    End Sub
    Sub FillSurveyDate()
     With Content.Find
        .Text = "<日期>"
        .Replacement.Text = "日期:" + Replace(Split(ThisDocument.Paragraphs(2).Range, "")(1), Chr(13), "")
        .Execute Replace:=wdReplaceAll, Forward:=True, Wrap:=wdFindContinue
    End With
    End Sub
    Sub DeletePics()
        Dim shp As Object
        For Each shp In ThisDocument.InlineShapes
            shp.Delete
        Next
    End Sub
    Sub InsertPics(index As Integer, picPath As String)
        With ThisDocument.Tables(1)
             Select Case index
                    Case 1:
                        .Cell(4, 1).Range.InlineShapes.AddPicture FileName:=picPath
                    Case 2:
                        .Cell(4, 2).Range.InlineShapes.AddPicture FileName:=picPath
                    Case 3:
                        .Cell(5, 1).Range.InlineShapes.AddPicture FileName:=picPath
                    Case 4:
                        .Cell(5, 2).Range.InlineShapes.AddPicture FileName:=picPath
              End Select
        End With
    End Sub
    Sub SaveAsDocx(path As String)
            ActiveDocument.SaveAs2 FileName:=path, FileFormat:= _
            wdFormatXMLDocument, CompatibilityMode:=15
    End Sub
  • 相关阅读:
    Shell脚本精选 规格严格
    转载Http一篇文章 规格严格
    Eclipse插件安装 规格严格
    Jad用法(转) 规格严格
    Java通过代理服务器访问外部网络 规格严格
    hwclock(Linux) 规格严格
    Linux下的多线程编程
    30岁前男人需要完成的事
    FTP主动模式及被动模式
    6年软件开发经验总结
  • 原文地址:https://www.cnblogs.com/yzhyingcool/p/13901042.html
Copyright © 2011-2022 走看看