zoukankan      html  css  js  c++  java
  • 20170609批量生成WORD合同

    Sub NextSeven_CodeFrame()
        Application.ScreenUpdating = False
        Application.DisplayAlerts = False
        Application.Calculation = xlCalculationManual
        Application.StatusBar = ">>>>>>>>程序正在运行>>>>>>>>"
    
    
        On Error GoTo ErrHandler
    
        Dim StartTime, UsedTime As Variant
        StartTime = VBA.Timer
        '>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
    
        Dim Wb As Workbook
        Dim Sht As Worksheet
        Dim oSht As Worksheet
        Dim Rng As Range
        Dim Arr As Variant
        Dim EndRow As Long
        Const HEAD_ROW As Long = 1
        Const SHEET_NAME As String = "明细表"
        Const START_COLUMN As String = "A"
        Const END_COLUMN As String = "I"
    
        Dim Count As Long
    
        '>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
        Set Wb = Application.ThisWorkbook
        Set Sht = Wb.Worksheets(SHEET_NAME)
        With Sht
            EndRow = .Cells(.Cells.Rows.Count, 4).End(xlUp).Row
            Set Rng = .Range(.Cells(HEAD_ROW + 1, START_COLUMN), .Cells(EndRow, END_COLUMN))
            Arr = Rng.Value
        End With
    
    
        Dim ModelFolder As String
        Dim FileName As String
        Dim FilePath As String
        Dim NewName As String
        Dim NewFolder As String
        Dim NewPath As String
        '>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
        '绑定
        Dim wdApp As Word.Application
        Dim OpenDoc As Word.Document
        Set wdApp = New Word.Application
        '>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
    
    
        Dim FindText As String
        Dim RepText As String
    
        ModelFolder = Wb.Path & "模板"
        NewFolder = Wb.Path & "生成"
    
    
      
        For i = LBound(Arr) To UBound(Arr)
            
            '##########################################
            If i > 5 Then GoTo Here   '控制输出几份,注释掉则不限制数量
            '########################################
            '>>>>>>>>>>>>>>>>>诉前财产保全申请书.docx
            FileName = "诉前财产保全申请书.docx"
            FilePath = ModelFolder & FileName
            NewName = i & "-" & Arr(i, 2) & Arr(i, 3) & Arr(i, 4) & "-" & FileName
            NewPath = NewFolder & NewName
            '预先清除文件
            On Error Resume Next
            Kill NewPath
            On Error GoTo 0
            Set OpenDoc = wdApp.Documents.Open(FilePath)
            With OpenDoc
    
                '逐个信息替换
                With .Content.Find
                    .ClearFormatting
                    .Replacement.ClearFormatting
                    .Text = "姓名"
                    .Replacement.Text = Arr(i, 2)
                    .Execute Replace:=wdReplaceAll
                End With
    
                With .Content.Find
                    .ClearFormatting
                    .Replacement.ClearFormatting
                    .Text = "身份证"
                    .Replacement.Text = Arr(i, 3)
                    .Execute Replace:=wdReplaceOne
                End With
    
                With .Content.Find
                    .ClearFormatting
                    .Replacement.ClearFormatting
                    .Text = "性别"
                    .Replacement.Text = Arr(i, 4)
                    .Execute Replace:=wdReplaceOne
                End With
    
                With .Content.Find
                    .ClearFormatting
                    .Replacement.ClearFormatting
                    .Text = "出生日期"
                    .Replacement.Text = Arr(i, 5)
                    .Execute Replace:=wdReplaceOne
                End With
    
                With .Content.Find
                    .ClearFormatting
                    .Replacement.ClearFormatting
                    .Text = "机构名称"
                    .Replacement.Text = Arr(i, 9)
                    .Execute Replace:=wdReplaceOne
                End With
    
                With .Content.Find
                    .ClearFormatting
                    .Replacement.ClearFormatting
                    .Text = "账户号"
                    .Replacement.Text = Arr(i, 7)
                    .Execute Replace:=wdReplaceOne
                End With
    
                With .Content.Find
                    .ClearFormatting
                    .Replacement.ClearFormatting
                    .Text = "冻结金额"
                    .Replacement.Text = Arr(i, 8)
                    .Execute Replace:=wdReplaceOne
                End With
    
                With .Content.Find
                    .ClearFormatting
                    .Replacement.ClearFormatting
                    .Text = "合同日期"
                    .Replacement.Text = Arr(i, 6)
                    .Execute Replace:=wdReplaceOne
                End With
    
    
                '>>>>>>>>>>>>>>>>>>>>>>>>>
                .SaveAs NewPath
                .Close True
            End With
    
        Next i
    
    Here:
        wdApp.Quit
    
    
        '>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
        UsedTime = VBA.Timer - StartTime
        MsgBox "本次耗时:" & Format(UsedTime, "0.000秒"), vbOKOnly, "Excel Studio"
    
    ErrorExit:
        Set Wb = Nothing
        Set Sht = Nothing
        Set Rng = Nothing
        Set wdApp = Nothing
    
    
        Application.ScreenUpdating = True
        Application.DisplayAlerts = True
        Application.Calculation = xlCalculationAutomatic
        Application.StatusBar = False
        Exit Sub
        '>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
    ErrHandler:
        If Err.Number <> 0 Then
            MsgBox Err.Description & "!", vbCritical, "Excel Studio"
            'Debug.Print Err.Description
            Err.Clear
            Resume ErrorExit
        End If
    End Sub
    

      

  • 相关阅读:
    如何找回Oracle所有用户丢失的密码
    数据库范式详解
    lua
    cdn
    初心
    广州
    vim 命令
    git 命令
    Linux琐碎
    汪国真语录
  • 原文地址:https://www.cnblogs.com/nextseven/p/7128204.html
Copyright © 2011-2022 走看看