我如何将excel或word文件转换为pdf文件,将其合并到另一个位置的一个文件中,并通过excel在vba中将其邮寄[关闭]

问题描述 投票:-1回答:1

下面是快照,以更好地了解我的工作。

enter image description here

excel vba lotus-notes lotus-domino lotusscript
1个回答
0
投票

如果需要将多个Word文件转换为其他格式,例如TXT,RTF,HTML或PDF,请运行以下脚本。

Option Explicit On

Sub ChangeDocsToTxtOrRTFOrHTML()
    'with export to PDF in Word 2007
    Dim fs As Object
    Dim oFolder As Object
    Dim tFolder As Object
    Dim oFile As Object
    Dim strDocName As String
    Dim intPos As Integer
    Dim locFolder As String
    Dim fileType As String
    On Error Resume Next

    locFolder = InputBox("Enter the folder path to DOCs", "File Conversion", "C:\Users\your_path_here\")
    Select Case Application.Version
        Case Is < 12
            Do
                fileType = UCase(InputBox("Change DOC to TXT, RTF, HTML", "File Conversion", "TXT"))
            Loop Until (fileType = "TXT" Or fileType = "RTF" Or fileType = "HTML")
        Case Is >= 12
            Do
                fileType = UCase(InputBox("Change DOC to TXT, RTF, HTML or PDF(2007+ only)", "File Conversion", "TXT"))
            Loop Until (fileType = "TXT" Or fileType = "RTF" Or fileType = "HTML" Or fileType = "PDF")
    End Select

    Application.ScreenUpdating = False
    Set fs = CreateObject("Scripting.FileSystemObject")
    Set oFolder = fs.GetFolder(locFolder)
    Set tFolder = fs.CreateFolder(locFolder & "Converted")
    Set tFolder = fs.GetFolder(locFolder & "Converted")

    For Each oFile In oFolder.Files
        Dim d As Document
        Set d = Application.Documents.Open(oFile.Path)
        strDocName = ActiveDocument.Name
        intPos = InStrRev(strDocName, ".")
        strDocName = Left(strDocName, intPos - 1)
        ChangeFileOpenDirectory tFolder
        Select Case fileType
            Case Is = "TXT"
                strDocName = strDocName & ".txt"
                ActiveDocument.SaveAs FileName:=strDocName, FileFormat:=wdFormatText
        Case Is = "RTF"
                strDocName = strDocName & ".rtf"
                ActiveDocument.SaveAs FileName:=strDocName, FileFormat:=wdFormatRTF
        Case Is = "HTML"
                strDocName = strDocName & ".html"
                ActiveDocument.SaveAs FileName:=strDocName, FileFormat:=wdFormatFilteredHTML
        Case Is = "PDF"
                strDocName = strDocName & ".pdf"
                ActiveDocument.ExportAsFixedFormat OutputFileName:=strDocName, ExportFormat:=wdExportFormatPDF
        End Select
        d.Close
        ChangeFileOpenDirectory oFolder
    Next oFile
    Application.ScreenUpdating = True

End Sub

结果将保存在动态创建的文件夹中,并且包含与刚转换的文档相同的文件夹中。

将多个文件附加到单个Word文档中

Sub Foo() 
Dim i As Long 
Application.ScreenUpdating = False 
Documents.Add 
With Application.FileSearch 
'Search in foldername 
.LookIn = "C:\test" 
.SearchSubFolders = False 
.FileName = "*.doc" 
.Execute 
For i = 1 To .FoundFiles.Count 
If InStr(.FoundFiles(i), "~") = 0 Then 
Selection.InsertFile FileName:=(.FoundFiles(i)), _ 
ConfirmConversions:=False, Link:=False, Attachment:=False 
Selection.InsertBreak Type:=wdPageBreak 
End If 
Next i 
End With 
End Sub

通过电子邮件发送此文件应该很容易。我将它留给您执行此步骤。希望对您有所帮助!

© www.soinside.com 2019 - 2024. All rights reserved.