在Excel 2013中的.xlsm文件中运行VBA宏时遇到问题。
执行时出现Sheets("SheetName").Select
或Sheets("SheetName").Activate
错误的所有实例。
这是其中一个错误代码示例的示例:
Sub Reset_Additional()
Application.ScreenUpdating = False
Sheets("Additional").Select <-- Code breaks on this line
Range("additionalcheckbox").Select
Selection.Value = False
Range("additional1").Select
Selection.ClearContents
Range("additional2").Select
Selection.ClearContents
Range("additional3").Select
Selection.FormulaR1C1 = "=RC[-11]"
Range("additional4").Select
Selection.FormulaR1C1 = "=RC[-18]"
Range("additional5").Select
Selection.FormulaR1C1 = "=RC[-18]"
Range("additional6").Select
Selection.FormulaR1C1 = "=RC[-9]"
Sheets("Macro Rules").Select
Range("B21").Select
Selection.FormulaR1C1 = "=RC[+1]"
Application.ScreenUpdating = True
End Sub
宏应该重置工作簿中几张表的某些字段。在团队成员使用早期版本的Excel处理该文件之前,该宏以前正在工作,从那以后发生了这个错误。通过搜索这个具体情况,我找不到多少东西。由于时间限制,恢复旧版本将是我的最后手段。任何解决方法都很棒。
答案 0 :(得分:2)
这不是您问题的解决方案,只是要检查的事项列表:
答案 1 :(得分:1)
请不要使用.Selection
你应该使用:
Sub Reset_Additional()
Application.ScreenUpdating = False
With Worksheets("Additional")
.Range("additionalcheckbox").Value = False
.Range("additional1").ClearContents
.Range("additional2").ClearContents
.Range("additional3").FormulaR1C1 = "=RC[-11]"
.Range("additional4").FormulaR1C1 = "=RC[-18]"
.Range("additional5").FormulaR1C1 = "=RC[-18]"
.Range("additional6").FormulaR1C1 = "=RC[-9]"
End With
With Sheets("Macro Rules")
.Range("B21").FormulaR1C1 = "=RC[+1]"
End With
Application.ScreenUpdating = True
End Sub
如果您的代码停止,您可能拼错了工作表名称。