如何使用宏更改文件名?

时间:2018-01-25 16:34:28

标签: vba ms-word

现在我有一个文档,我想保存它,但文件名应该是迭代的 例如。 1.docx然后如果我运行宏它应该保存为2.docx等等。 我可以从文档中取一个单词作为文件名的变量 例如。我想在文档中使用第45个单词作为文件名 那我该怎么办?

2 个答案:

答案 0 :(得分:0)

目前我还没有公开信息,因此无法编写具体示例代码。以下是如何找到答案的提示。

简而言之,您可以选择一系列文字。在这些范围内有许多内置集合。 "段"和#34;单词"是一些例子。 解决问题的最简单方法是选择文档范围,然后遍历Words集合,直到找到第45个单词。

但是,MSDN注意到一些非单词也保留在此集合中,因此您可能希望在迭代时进行过滤。 (除此之外,请小心他们的示例,删除for-each循环中的项目会产生后果

假设" rngWords"是您选择的文档范围(单词集合),您可能类似于(不是真正的代码):

Counter = 0
selectedWord = ""
for iterator = 1 to rngWords.Count
    loopWord = rngWords(iterator)
    if trueword then Counter = Counter + 1
    if counter = 45 then  ' magic number = 45 based on your post.
        selectedword = loopWord
        exit loop
    end if
next iterator

您可以尝试(例如debug.print loopWord)来确定如何确定真正的单词。如果您的文档中没有45个单词,您还必须解决所发生的情况 - 例如你可以说最后一句话。可能最好的方法是先检查计数(if rngWords.Count < 45 then .... else (loop)

答案 1 :(得分:-1)

检索否。从文档中,使用以下链接

Getting char from string at specified index in the visual basic

并保存文件

Sub ExampleToSaveWorkbook()
Workbooks.Add
'Saving the Workbook
ActiveWorkbook.SaveAs "C:\WorkbookName.xls"
'OR
'ActiveWorkbook.SaveAs Filename:="C:\WorkbookName1.xls"
End Sub