0

所以我要做的是获取一个word文档,将其保存为启用换行符的纯文本.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

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

4

1 回答 1

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
于 2012-07-13T14:31:42.547 回答