Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba 如何在Excel中更改文档的名称?_Vba_Excel_Excel 2010 - Fatal编程技术网

Vba 如何在Excel中更改文档的名称?

Vba 如何在Excel中更改文档的名称?,vba,excel,excel-2010,Vba,Excel,Excel 2010,我有一个启用宏的模板,名为TIP-PBI.xltm。基于此模板创建文档时,Excel会自动将其命名为TIP-PBI1。但是,我想给它一个自定义名称 我想我可以通过修改工作簿的.Title属性来做到这一点。为此,启动工作簿时,将启动“打开”事件,并执行以下操作: Private Sub Workbook_Open() Dim strPBI As String strPBI = InputBox$("Enter PBI", "Enter PBI") ThisWorkbook

我有一个启用宏的模板,名为TIP-PBI.xltm。基于此模板创建文档时,Excel会自动将其命名为TIP-PBI1。但是,我想给它一个自定义名称

我想我可以通过修改工作簿的.Title属性来做到这一点。为此,启动工作簿时,将启动“打开”事件,并执行以下操作:

Private Sub Workbook_Open()
    Dim strPBI As String
    strPBI = InputBox$("Enter PBI", "Enter PBI")

    ThisWorkbook.Title = "TIP-PBI-" & strPBI
End Sub
然而,这没有任何作用


如何在启动时更改文档的标题?

更改工作簿名称的唯一方法是保存它(),以便执行以下操作

ThisWorkbook.SaveAs ThisWorkbook.Path & "" & FileName & ".xls"
如果你只想建议一个名字,那么你可以使用或


如果新工作簿是从模板创建的,则采用模板名称。因此,如果我希望设置新工作簿的名称,我会将一个虚拟模板复制到所需的名称,然后根据重命名的模板打开新工作簿

 strFile = "C:\Temp\" & strnewname & ".xltx "

 FileCopy "C:\Temp\Dummy.xltx", strFile

 'Open template to new workbook

 Workbooks.Open Filename:=strFile

 Kill strFile  'delete renamed template

我认为在WB中更改名称的唯一选择是将其保存为类似于
ThisWorkbook.SaveAs ThisWorkbook.Path&“&Target.Text&“.xls”
@TomIngram您是对的:回答这个问题。从模板启动新文档时,所有Office应用程序都会为新(未保存)文件提供模板名称,并在文件末尾添加序号。更改的唯一方法是使用新名称保存它。@TomIngram我如何覆盖用户按下“保存”按钮?我不需要在启动时保存它,只需要更改文档标题,这样当用户单击
save
时,我的自定义名称就是建议的文件名。
 strFile = "C:\Temp\" & strnewname & ".xltx "

 FileCopy "C:\Temp\Dummy.xltx", strFile

 'Open template to new workbook

 Workbooks.Open Filename:=strFile

 Kill strFile  'delete renamed template