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
  • 相关阅读:
    147
    UVA12230 过河 Crossing Rivers
    重聚
    网络流24题 P2762 太空飞行计划问题
    网络流24题 P2756 飞行员配对方案问题
    网络流24题
    洛谷 P3369 【模板】普通平衡树
    LOJ #6280. 数列分块入门 4
    LOJ #6279. 数列分块入门 3
    LOJ #6278. 数列分块入门 2
  • 原文地址:https://www.cnblogs.com/yzhyingcool/p/13901042.html
Copyright © 2011-2022 走看看