我正在尝试将我的Word文档的名称设置为代码给出的突出显示的单元格中内容的内容; ActiveDocument.Tables(1).Cell(1, 2)
我必须对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
问题在于,当我选择整个单元格时,第二个宏不起作用
仅当我选择特定文本时,如下所示
有什么解决方案吗?
再次感谢
答案 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"