如何通过引用两个单元格自动命名电子表格?

我刚写完一个自动生成报告的漂亮的macros。 它运作良好,但我需要它根据两个单元格中的数据自动命名电子表格。

本质上,这个macros创build一个新的电子表格,将信息复制到它,并创build每月所需的相关数据透视表。

作为其中的一部分,我创build了一个仪表板,用于生成包含指令和date范围的报告。 目前它创build电子表格“ 新报告 ”。 有没有办法自动创build新的电子表格并将其命名为“Report 01.01.15 to 01.02.15”?

我有两个单独的单元格的date范围,我知道我将不得不确保date范围是一个将使用允许的字符(IE 01.01.15而不是01/01/15) – 是我正确地说有一种告诉用户他们已经把date与不正确的分隔符的方式?

 Option Explicit Sub SaveAs() Dim FileName As String Dim FilePath As String Dim FName As String FilePath = "C:\Temp" FileName = Sheets("Sheet1").Range("A1").Text FName = Sheets("Sheet1").Range("B1").Text ThisWorkbook.SaveAs FileName:=FilePath & "\" & FileName & FName End Sub 

保存在今天的date

 Dim sSave As String sSave = "Reports " & Format(Date, "dd-mm-yyyy") 

或明天的date

 "Reports" & Format(Date + 1, "dd-mm-yyyy") 

对于文件格式请参阅示例

 ThisWorkbook.SaveAs Filename:=FilePath, fileformat:=52 

这些是Excel 2007-2013中的主要文件格式

 51 = xlOpenXMLWorkbook (without macro's in 2007-2013, xlsx) 52 = xlOpenXMLWorkbookMacroEnabled (with or without macro's in 2007-2013, xlsm) 50 = xlExcel12 (Excel Binary Workbook in 2007-2013 with or without macro's, xlsb) 56 = xlExcel8 (97-2003 format in Excel 2007-2013, xls) Or maybe you want to save the one worksheet workbook to csv, txt or prn. ".csv": FileFormatNum = 6 ".txt": FileFormatNum = -4158 ".prn": FileFormatNum = 36 

要仅保存一张工作表作为新的工作簿,则需要在保存之前复制工作表

 Option Explicit Sub SaveAs() Dim Sht As Worksheet Dim FileName As String Dim FilePath As String FilePath = "C:\Temp" FileName = Sheets("Sheet1").Range("A1").Text Set Sht = ActiveWorkbook.Sheets("Sheet1") Sht.Copy ActiveWorkbook.SaveAs FileName:=FilePath & "\" & FileName End Sub 

要将多个工作Sheets(Array("Sheet1", "Sheet2")).Copy保存为新的工作簿,然后使用Sheets(Array("Sheet1", "Sheet2")).Copy

 Option Explicit Sub SaveAs() Dim Sht As Worksheet Dim Book As Workbook Dim FileName As String Dim FilePath As String FilePath = "C:\Temp" FileName = Sheets("Sheet1").Range("A1").Text Set Book = ActiveWorkbook With Book .Sheets(Array("Sheet1", "Sheet2")).Copy End With ActiveWorkbook.SaveAs FileName:=FilePath & "\" & FileName End Sub