• 【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
  • 相关阅读:
    网络-基础知识
    手机开发-安卓手机的更新换代
    C-基础
    手机开发-IOS
    前端- html 和css
    jmeter接口测试-文件下载
    JDBC接口
    jmeter接口测试实例7-关联
    jmeter接口测试实例6-注册(参数化)
    jmeter接口测试实例5-文件上传
  • 原文地址:https://www.cnblogs.com/yzhyingcool/p/13901042.html
Copyright © 2020-2023  润新知