Excel 如何将工作表另存为具有动态名称的工作簿?
我知道如何将工作表另存为新工作簿,但如何动态指定名称? 我尝试了Excel 如何将工作表另存为具有动态名称的工作簿?,excel,vba,Excel,Vba,我知道如何将工作表另存为新工作簿,但如何动态指定名称? 我尝试了另存为和另存为文件名,但我不知道如何成功地将变量放入名称中 Sub sheetCopy() Dim wbS As Workbook, wbT As Workbook Dim wsS As Worksheet, wsT As Worksheet Dim title As String title = ThisWorkbook.Worksheets("IR General Info").Range("B2")
另存为
和另存为
文件名,但我不知道如何成功地将变量放入名称中
Sub sheetCopy()
Dim wbS As Workbook, wbT As Workbook
Dim wsS As Worksheet, wsT As Worksheet
Dim title As String
title = ThisWorkbook.Worksheets("IR General Info").Range("B2").Text
Set wbS = ThisWorkbook 'workbook that holds this code
Set wsS = wbS.Worksheets("Bulk Upload")
wsS.Copy
Set wbT = ActiveWorkbook 'assign reference asap
Set wsT = wbT.Worksheets("Bulk Upload")
wsT.Name = "Exported_BulkUpload" 'rename sheet
wbT.SaveAs wbS.Path & "\" & title & ".xlsx"
End Sub
所以,如果我用引号把标题做成类似“boo”的东西,这段代码就行了。但是如何根据变量标题进行更改?您是否尝试将
标题变量指定给范围(“B2”)。值而不是范围(“B2”)。文本
如果文件位于同一文件夹中,您可能可以使用wbT.SaveAs FileName:=title
,尝试以下操作:
Sub sheetCopy()
Dim wbS As Workbook, wbT As Workbook
Dim wsS As Worksheet, wsT As Worksheet
Dim title As String
title = ThisWorkbook.Worksheets("IR General Info").Range("B2").Text
'<<step through the macro and once you have gone past this point do Ctl+G to get the immediate window then type ?title in it and press enter. Or just hover your mouse over title in this script - has a value been assigned to it?
'<<the following line is not required - ThisWorkbook object is sufficient:
'Set wbS = ThisWorkbook 'workbook that holds this code
Set wsS = ThisWorkbook.Worksheets("Bulk Upload")
wsS.Copy '<<I've changed below here so it is saved straight away
ActiveWorkbook.SaveAs ThisWorkbook.Path & "\" & title & ".xlsx"
Set wbT = excel.workbooks(title & ".xlsx") 'assign reference
Set wsT = wbT.Worksheets("Bulk Upload")
wsT.Name = "Exported_BulkUpload" 'rename sheet
End Sub
Sub-sheetCopy()
将wbS设置为工作簿,将wbT设置为工作簿
将wsS作为工作表,wsT作为工作表
将标题设置为字符串
标题=此工作簿。工作表(“IR常规信息”)。范围(“B2”)。文本
是的,我试过文本和值,但都没有用。很遗憾,这些文件可能不在同一文件夹中。您是否使用F8
逐步浏览了代码?是否为title
指定了一个值?“因此,如果我用引号将title设置为类似于“boo”的值,则此代码有效。但如何根据变量title进行更改?”您必须澄清这一点。当title
的值为“boo”
时,它工作,但当。。。什么?谢谢你,你的代码更简洁。此外,您帮助我认识到它不起作用的原因是因为变量“title”中有反斜杠(无效的文件名)。谢谢!(好吧,如果我的回答有助于回答这个问题,你可以随时给它打上正确的分数……或者,如果你觉得不够慷慨,就直接投票吧!)