使用日期创建新的命名图纸

  • 本文关键字:日期 创建 excel vba
  • 更新时间 :
  • 英文 :


我正试图使用以下方法在excel vba中创建一个新的工作表:

Option Explicit
Sub NewSheet()
Dim T As Date, TabName As String
T = Date
TabName = "Progress " + CStr(T)
ThisWorkbook.Sheets.Add(After:=Sheets("BiWeeklyProgress")).Name = TabName

End Sub

它不起作用,我找不到问题?有什么帮助吗?

不能在工作表名称中使用/字符,因此日期格式不同。

Excel工作表名称的有效字符

Option Explicit
Sub NewSheet()
Dim T As Date, TabName As String
T = Date
TabName = "Progress " + Format(T, "mm.d.yyyy")
ThisWorkbook.Sheets.Add(After:=Sheets("BiWeeklyProgress")).Name = TabName

End Sub

就这点而言。。。你真正需要的只是:

Sub NewSheet()
ThisWorkbook.Sheets.Add(After:=Sheets("BiWeeklyProgress")).Name = "Progress " + Format(Date, "mm.d.yyyy")
End Sub

由于其他原因,额外的变量可能会派上用场,但您并不需要它们。

话虽如此,如果您多次运行此操作,也会出现错误,因为工作表名称已经存在,因此您可能需要添加一个检查。这是在使用变量作为图纸名称时很方便,因为您将多次使用它。

Sub NewSheet()
Dim TabName As String
TabName = "Progress " + Format(Date, "mm.d.yyyy")
If WorksheetExists(TabName) Then
MsgBox TabName & " already exists"
' you can put whatever else you want here to handle this scenario
Else
ThisWorkbook.Sheets.Add(After:=Sheets("BiWeeklyProgress")).Name = TabName
End If
End Sub
Function WorksheetExists(sName As String) As Boolean
WorksheetExists = Evaluate("ISREF('" & sName & "'!A1)")
End Function

最新更新