Word宏保存为带有当前文件名的文本

时间:2012-07-13 12:42:33

标签: vba ms-word word-vba

所以我要做的是拿一个word文档,将其保存为plaint text .txt并启用换行符。我被告知一个宏将是一个简单的方法来做到这一点,我已经取得了一些成功。我现在最大的问题是它没有保存文档,因为它是当前的文件名。我环顾四周,人们说要使用ActiveDocument.Name,但由于某种原因这对我不起作用,我最终将文件保存为txt文件,但字面上命名为ActiveDocument.Name。这是我第一次尝试任何与VBA相关的东西,所以它可能是一些我看不到的简单的小语法错误。这是我目前的代码:

Sub WordtoTxtwLB()
'
' WordtoTxtwLB Macro
'
'
    ActiveDocument.SaveAs2 FileName:= _
        "\\Path\Path\FILENAME.txt", FileFormat:= _
        wdFormatText, LockComments:=False, Password:="", AddToRecentFiles:=True, _
        WritePassword:="", ReadOnlyRecommended:=False, EmbedTrueTypeFonts:=False, _
         SaveNativePictureFormat:=False, SaveFormsData:=False, SaveAsAOCELetter:= _
        False, Encoding:=1252, InsertLineBreaks:=True, AllowSubstitutions:=False, _
         LineEnding:=wdCRLF, CompatibilityMode:=0
End Sub

注意:我确实将代码中的路径和文件名更改为通用名称(即“Path”和“FILENAME”),以使事情变得更容易/更清晰。因此,如果我有一个名为cat.doc的文档,我希望宏将其保存为带有换行符和相同文件名的.txt文件。任何帮助/建议?

1 个答案:

答案 0 :(得分:2)

名称FILENAME在引号内,因此它将用作文字。将其从引号中分离出来以用作变量。此外,如果您使用ActiveDocument.Name,它将具有后缀作为字符串的一部分(“somefile.doc”);你必须删除后缀。

   Sub WordtoTxtwLB()
    '
    ' WordtoTxtwLB Macro
    '
    '
        Dim fileName As String
        myFileName = "New_File"

        ActiveDocument.SaveAs2 FileName:= _
            "\\Path\Path\" & myFileName & ".txt", FileFormat:= _
            wdFormatText, LockComments:=False, Password:="", AddToRecentFiles:=True, _
            WritePassword:="", ReadOnlyRecommended:=False, EmbedTrueTypeFonts:=False, _
             SaveNativePictureFormat:=False, SaveFormsData:=False, SaveAsAOCELetter:= _
            False, Encoding:=1252, InsertLineBreaks:=True, AllowSubstitutions:=False, _
             LineEnding:=wdCRLF, CompatibilityMode:=0
    End Sub