房地一体项目需要的房屋照片表格
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