Excel 使用单元格值作为标题将工作表另存为新工作簿
我有以下代码:Excel 使用单元格值作为标题将工作表另存为新工作簿,excel,vba,Excel,Vba,我有以下代码: Sub SaveFinalMTO() Application.ScreenUpdating = False Sheets("Final MTO").Select Sheets("Final MTO").Copy 'grab the file name from b6:m6, put it in variable ThisFile ThisFile = Sheets("Final MTO").Range("b6:m6").Value Sheets("Final MTO").S
Sub SaveFinalMTO()
Application.ScreenUpdating = False
Sheets("Final MTO").Select
Sheets("Final MTO").Copy
'grab the file name from b6:m6, put it in variable ThisFile
ThisFile = Sheets("Final MTO").Range("b6:m6").Value
Sheets("Final MTO").SaveAs Filename:="C:\Users\owner\Desktop\" & ThisFile & ".xlsm"
Application.ScreenUpdating = True
ActiveWorkbook.Close
End Sub
在某种程度上,一切都很好。新工作簿是使用正确的工作表创建的。新文件已打开,但文件名为“Book1”,而不是范围B6:M6
中的值,该范围是使用串联函数的合并单元格。我试着使用一个只有一个值的未合并的,我仍然在拉一个
运行时错误“13”
如果您能帮助解决此错误,我们将不胜感激。谢谢。如果要另存为启用宏的文件类型,则必须指定该文件类型。此外,您还可以使用
Environ$
使文件夹名成为动态的
Sheets("Final MTO").SaveAs Filename:="C:\Users\" & Environ$("Username") & "\Desktop\" & ThisFile & ".xlsm", xlOpenXMLWorkbookMacroEnabled
哪一行给出了错误?SaveAs行?只需使用
.Range(“b6”)
。多个单元格返回一个数组。类型不匹配可能是由多种原因造成的。使用“Option Explicit”给出错误的行是Sheets(“Final MTO”)。另存为文件名:=“C:\Users\owner\Desktop\”&此文件和“.xlsm”我找到了。没有“所有者”文件。Duh.你应该声明你的变量,并在每个模块的顶部使用Option Explicit
,尤其是在学习过程中,以帮助防止出现这样的问题。。。另外,请注意,owner
是一个文件夹,而不是一个文件。为了自己和他人的利益,尽早正确使用术语是很重要的。是指向教程的链接。