VBA获取错误Worksheet类的活动方法失败
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了VBA获取错误Worksheet类的活动方法失败相关的知识,希望对你有一定的参考价值。
我试图寻找答案,但到目前为止我找不到任何有用的东西。我有一些代码适用于某些人,并且在运行此代码时不适用于其他人(使用相同版本的Excel):
Private Sub Workbook_Open()
Application.ScreenUpdating = False
Application.ExecuteExcel4Macro "SHOW.TOOLBAR(""Ribbon"",False)"
Application.DisplayFormulaBar = False
Sheets("Discount").Activate
ActiveSheet.Unprotect Password:="01"
ActiveSheet.Range("G14:O15,O18:O19,D29:I29,D31:I31,D33:I33,D35:I35,D37:I37").ClearContents
ActiveSheet.Shapes("Option Button 31").ControlFormat.Value = xlOn
OptionButton31_Click
Application.ScreenUpdating = True
End Sub
错误显示在Sheets。(“折扣”)。激活
工作表的拼写是正确的。我也试过了
Private Sub Workbook_Open()
ActiveWorkbook.Unprotect Password:="01"
Application.ScreenUpdating = False
Application.ExecuteExcel4Macro "SHOW.TOOLBAR(""Ribbon"",False)"
Application.DisplayFormulaBar = False
ThisWorkbook.Sheets("Discount").Activate
ActiveSheet.Unprotect Password:="01"
ActiveSheet.Range("G14:O15,O18:O19,D29:I29,D31:I31,D33:I33,D35:I35,D37:I37").ClearContents
ActiveSheet.Shapes("Option Button 31").ControlFormat.Value = xlOn
OptionButton31_Click
ActiveWorkbook.Protect Password:="01"
Application.ScreenUpdating = True
仍然得到错误。我很难搞清楚因为它每次都适合我,但不适合其他人。
解决方案1:
而不是Sheets.("Discount").Activate
写Sheets("Discount").Activate
它应该工作。例如,删除点。
解决方案2:
如果这不起作用,请尝试确保此工作表可见。例如。在行之前写入错误如下:
Sheets("Discount").Visible = True
一般来说,在VBA尝试避免ActiveSheet
,ActiveWorkbook
,ActiveCell
- How to avoid using Select in Excel VBA
正如@Mat's Mug所述,当你引用工作表时,请考虑使用Worksheets("Discount").Visible
,因为Sheets
集合也包含Charts
。
尝试使用:
表格(“折扣”)。可见表格(“折扣”)。选择
如果这不起作用,请告诉我,我会看看还有什么我可以推荐的。如果您记下任何错误消息,这可能会有所帮助。另外,尝试使用screenupdating运行它并不像上面建议的人那样关闭 - 然后你会看到是否有一个特定的动作让它摔倒了。
以上是关于VBA获取错误Worksheet类的活动方法失败的主要内容,如果未能解决你的问题,请参考以下文章
VBA 缺少 Worksheet.Range 作为值并不断获取未设置对象变量(错误 91)
错误 1004:范围类的自动填充方法失败 vba excel 2010