将Word Doc保存为特定单元格的内容

时间:2019-10-01 06:05:15

标签: vba pdf ms-word

我正在尝试将我的Word文档的名称设置为代码给出的突出显示的单元格中内容的内容; ActiveDocument.Tables(1).Cell(1, 2)

enter image description here

我必须对200多个文档执行此操作,并且所有文档的名称都位于同一位置。

此宏选择所需的单元格并将其复制

  ActiveDocument.Tables(1).Cell(1, 2).Select
  Selection.Copy

然后这个文件将word文档另存为pdf文件,并将剪贴板内容作为其名称。

Sub rename()

Dim strPath As String
Dim strFileName As String


'set pathname accordingly
strPath = "enter path"

'create the Filename with your selection in Document
strFileName = Trim(Selection.Text) & ".pdf"

ActiveDocument.SaveAs FileName:= _
        strPath & strFileName _
        , FileFormat:=wdFormatXMLDocument, LockComments:=False, Password:="", _
        AddToRecentFiles:=True, WritePassword:="", ReadOnlyRecommended:=False, _
        EmbedTrueTypeFonts:=False, SaveNativePictureFormat:=False, SaveFormsData _
        :=False, SaveAsAOCELetter:=False

End Sub

问题在于,当我选择整个单元格时,第二个宏不起作用

enter image description here

enter image description here

仅当我选择特定文本时,如下所示

enter image description here

有什么解决方案吗?

再次感谢

2 个答案:

答案 0 :(得分:1)

尝试替换此行:

strFileName = Trim(Selection.Text) & ".pdf"

有了这个...

With ActiveDocument.Tables(1).Cell(1,2).Range
    strFileName=ActiveDocument.Range(Start:=.Start, End:=.End-1) & ".pdf"
End With

答案 1 :(得分:0)

在MS Word中,单元格中的最后一个字符始终是特殊字符,其ASCII码为7,用于标记单元格的结尾。使用前,您需要删除此字符。可能有几种方法可以做到这一点。您可以按以下方式替换此字符:

new_df = df.loc[df['GM'] > 8000]

或者,您可以按如下所示排除它:

strFileName = Replace(ActiveDocument.Tables(1).Cell(1, 2).Range.Text, Chr(7), "") & ".pdf"