【发布时间】:2021-12-16 17:42:13
【问题描述】:
Sub renameWorksheet()
Dim ws As Worksheet
For Each ws In ThisWorkbook.Worksheets
On Error Resume Next
ws.Name = Range("O11").Value & "-" & Range("N11").Value
Next ws
End Sub
因为当我重命名工作表并且有两个或多个工作表名称重复时,出现此错误:
该工作表名称已被占用。尝试另一个
因此,如果工作表名称与其他现有工作表相同,我希望将工作表重命名为“_2”。如何修改检测部分?
(更新 1) 我更新了我的代码,发现仍然有错误,有人能给我一些建议吗?
Sub renameWorksheet()
Dim ws As Worksheet
Dim rename As String
Dim rng As Worksheet
Dim i As Integer
i = 1
For Each ws In ThisWorkbook.Worksheets
rename = rng.Range("O11").Value & "-" & rng.Range("N11").Value & "-" & i
If rename = rng.Name Then
i = i + 1
ws.Name = rename
Else
ws.Name = rename
End If
rng.Name = rename
Next ws
End Sub
现在返回错误:
对象变量或未设置块变量
【问题讨论】:
-
我已经阅读了这些链接,它们不是我的答案。我想重命名工作表,如果工作表重复,则再次重命名。