我试图在每次单击按钮时添加一个新的excel,因为工作表是以日期命名的。但是,我收到一个错误,上面写着“不能将工作表重命名为与另一个工作表、引用对象库或Visual引用的工作簿相同的名称”。
Dim szTodayDate As String
szTodayDate = Format(Date, "mm.dd")
Dim ws As Worksheet
Set ws = ThisWorkbook.Sheets.Add(After:= _
ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count))
ws.Name = szTodayDate
我想要的是创建一个名为mm.dd.i的新工作表。当我引用时间时,我使用按钮创建一个新的工作表。抱歉,我是VBA新手。
谢谢你的回答。加里的学生是最有效率的学生。解决了。
发布于 2018-02-19 05:53:27
不如:
Sub sjvyv()
Dim szTodayDate As String
szTodayDate = Format(Date, "mm.dd")
Dim ws As Worksheet, i As Long
ReDim N(1 To Sheets.Count)
i = 1
For Each ws In Sheets
If Left(ws.Name, 5) = szTodayDate Then
N(i) = Mid(wsname, 6)
i = i + 1
End If
Next ws
Set ws = ThisWorkbook.Sheets.Add(After:= _
ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count))
ws.Name = szTodayDate & "." & i
End Sub
发布于 2018-02-19 05:55:04
下面是一个片段,它为工作表创建一个新名称,该名称是可用的:
Sub AddSheet()
Dim TodayDate As String
Dim i As Integer
TodayDate = Format(Date, "mm.dd")
Dim ws As Worksheet
Set ws = ThisWorkbook.Sheets.Add(After:= _
ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count))
i = 1
Do While Not SheetNameAvailable(TodayDate & "." & i)
i = i + 1
Loop
ws.Name = TodayDate & "." & i
End Sub
Function SheetNameAvailable(SheetName As String) As Boolean
Dim ws As Worksheet
On Error Resume Next
Err.Clear
Set ws = ThisWorkbook.Worksheets(SheetName)
SheetNameAvailable = (Err.Number <> 0)
On Error GoTo 0
End Function
发布于 2018-02-19 05:51:18
On Error Resume Next
Set tempWS = Sheets(szTodayDate)
ws.Name = szTodayDate & IIf(tempWS Is Nothing, "", GetSheetCount(szTodayDate))
Set tempWS = Nothing
On Error GoTo 0
Function GetSheetCount(dateToTest) As Integer
Dim i As Integer
i = 1
For Each sh In ThisWorkbook.Sheets
If sh.Name Like dateToTest & "*" Then
i = i + 1
End If
Next
GetSheetCount = i
End Function
ws.Name = szTodayDate & ThisWorkbook.Sheets.Count + 1
只需将纸张(+1)的计数附加到末尾即可。
https://stackoverflow.com/questions/48867474
复制相似问题