首页 > 解决方案 > 重命名工作表或显示错误的 Vba 代码

问题描述

我有一个包含许多工作表的工作簿。我正在用数字进行网页抓取,然后让每张纸都以数字作为名称。如果数字已经提供给工作表,我想显示错误。如果是这样,我还希望用户能够输入新的工作表名称,但是在我执行此操作之前程序会不断弹出自己的错误消息。

该数字位于工作表的单元格 D10 中。

          For Each Sheet In ThisWorkbook.Sheets
            If Sheet.Name = Range("D10") Then
                MsgBox ("ERROR: This Acct No has already been formulated")
                NewName = InputBox("Please Rename:")
                ActiveSheet.Name = NewName
            ElseIf Sheet.Name <> Range("D10") Then
                ActiveSheet.Name = Range("D10")

            End If
            Next Sheet

我希望我自己的消息会弹出,但 Excel 只会弹出自己的错误消息。

标签: excelvba

解决方案


尝试这个:

Dim MyDuplicate as boolean

MyDuplicate = False

For Each Sheet In ThisWorkbook.Sheets
    If Sheet.Name = Range("D10") Then
        MsgBox ("ERROR: This Acct No has already been formulated")
        NewName = InputBox("Please Rename:")
        ActiveSheet.Name = NewName
        MyDuplicate = True
        Exit for
    End If
Next Sheet

If MyDuplicate = False then ActiveSheet.Name = Range("D10")

顺便说一句,我建议您避免使用 ActiveSheet 并将工作表分配给变量。


推荐阅读