excel - 重命名工作表或显示错误的 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 只会弹出自己的错误消息。
解决方案
尝试这个:
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 并将工作表分配给变量。
推荐阅读
- ultraedit - UltraEdit 脚本使用 saveAs("^c")
- python - 遍历熊猫数据框/系列的特定列
- mysql - 如何从具有不同但条件字段的 2 个表中选择记录?
- java - 需要帮助单击阴影根(关闭)类型下的元素
- core-data - 核心数据:延迟加载二进制属性/仅在访问时加载
- python - 对于每条可能的线,两点形成的线与其他点之间的距离
- sql-server - can you drop a table in sql server while it is being used in another session in a select statement?
- visual-studio - 每次安装Win10 SDK(任何版本)都会挂起
- ios - 如何获得可访问性以识别一个 UITextView 中的两个超链接
- reactjs - 表达 multer 没有从反应中得到 req.body