因为乱码,所以把问题重写一遍,谢谢
比如WORD模板文档可能如下:
«Date»
«MailingAddr»
Reference No : «Appln_Ref_No»Dear Customer,Thank you for applying for our Personal Line of Credit. To ensure speedy processing of your application, please。。现在需要在VB程序中对上面的一些参数进行替换,如«Date»替换为2001-09-24,等等。
问:如何进行?
(如果没错的话,应该是用什么mail merge的东东,请高手赐我代码吧,或点拨几下吧,谢谢〕
来几行抛砖引玉的代码:Dim wrdApp As Object 'Word.Application
Dim wrdDoc As Object 'Word.Document
Set wrdApp = CreateObject("word.application")
wrdApp.Visible = True
Set wrdDoc = wrdApp.documents.open(customertemplateFile, ReadOnly:=True)
......
'这里进行替换操作
......
wrdDoc.printpreview
......

解决方案 »

  1.   

    还是乱码!!!!!!!!问题重写一遍,谢谢
    比如WORD模板文档可能如下:
    <<Date>>
    <<MailingAddr>>
    Reference No : <<Appln_Ref_No>>Dear Customer,Thank you for applying for our Personal Line of Credit. To ensure speedy processing of your application, please。。现在需要在VB程序中对上面的一些参数进行替换,如<<Date>>替换为2001-09-24,等等。
    问:如何进行?
    (如果没错的话,应该是用什么mail merge的东东,请高手赐我代码吧,或点拨几下吧,谢谢〕
    来几行抛砖引玉的代码:Dim wrdApp As Object 'Word.Application
    Dim wrdDoc As Object 'Word.Document
    Set wrdApp = CreateObject("word.application")
    wrdApp.Visible = True
    Set wrdDoc = wrdApp.documents.open(customertemplateFile, ReadOnly:=True)
    ......
    '这里进行替换操作
    ......
    wrdDoc.printpreview
    ......
      

  2.   

    Private Function CreatePrintQueueLetter(ByVal sLetterTemp As String, ByVal sOutPutLetterPath As String, ByVal sOutPutLetterName As String) As Boolean
    'KN;01JUN2000
        Dim wrdSelection As Object
        Dim wrdMailMerge As Object
        Dim wrdMergeFields As Object
    '    Dim wrdSelection As Word.Selection
    '    Dim wrdMailMerge As Word.MailMerge
    '    Dim wrdMergeFields As Word.MailMergeFields
        Dim StrToAdd As String
        Dim bResult As Boolean
        Dim sOutPut As String
        bResult = False
        On Error GoTo ErrHandler
        ' Create an instance of Word  and make it visible
        
        sOutPut = LTrim(sOutPutLetterPath) + Trim(sOutPutLetterName)
          
        Set wrdApp = CreateObject("Word.Application")
        wrdApp.Visible = True
        Set wrdDoc = wrdApp.documents.Open(sLetterTemp, ReadOnly:=True)
        Set wrdMailMerge = wrdDoc.MailMerge
        'get datasource
        If GetMailMergeDataSoruce Then
            wrdMailMerge.Destination = wdSendToNewDocument
            With wrdMailMerge.DataSource
                .FirstRecord = 1
                .LastRecord = 1
            End With        wrdMailMerge.Execute False
            
            wrdApp.ActiveDocument.Saved = True
            If Dir(sOutPutLetterPath, vbDirectory) <> "" Then
             wrdApp.ActiveDocument.SaveAs sOutPut
            End If
            wrdApp.ActiveDocument.PrintOut
            wrdApp.ActiveDocument.Close False
            
            If Dir(sOutPut, vbDirectory) <> "" Then
               If Not gobjOnLineManager.MTXUpdLetterRequest(sOutPutLetterName, m_Appln_Ref_No) Then GoTo ExitHere
    '           If Not gobjLetterGenManager.MTXUpdLetterRequest(sOutPutLetterName, m_Appln_Ref_No) Then GoTo ExitHere
            End If
            
            'MsgBox "Mail Merge Complete.", vbMsgBoxSetForeground
            bResult = True
        End If
      
    ExitHere:
        CreatePrintQueueLetter = bResult
        If Not wrdApp Is Nothing Then
            If Not wrdDoc Is Nothing Then
               wrdDoc.MailMerge.MainDocumentType = wdNotAMergeDocument
               wrdDoc.Close False
            End If
            wrdApp.Quit
        End If
        ' Release References
        Set wrdSelection = Nothing
        Set wrdMailMerge = Nothing
        Set wrdMergeFields = Nothing
        Set wrdDoc = Nothing
        Set wrdApp = Nothing
        If Dir(gDataSrc, vbDirectory) <> "" Then Kill gDataSrc
        Exit Function
    ErrHandler:
       write_textlog "< " & Me.ClassName & ".CreatePrintQueueLetter>" & Err.Number & _
            Err.Description
        
       GoTo ExitHere
    End Function