2017-06-14 61 views
0

因此,我想写一些宏,我在工作表上调整各种不同的位,如清除内容和重新排序。当选中“MAIN SHEET”页面(在屏幕上打开)时,宏工作正常。当我尝试从另一张工作表上的宏按钮运行它们时,它们显然会自动与正在讨论的活动工作表进行交互。选择活动工作表似乎工作

我已经使用了各种不同的命令用于制造片状主动/选择范围,但每次与运行时错误9

对我作出什么愚蠢的错误任何帮助出现时间将大大尝试不胜感激!

的代码中的一个的当前版本低于

Sub sbClearMainSpreadsheet() 
Worksheets("MAIN SHEET").Range("A1:X999").Select 

Range("A2:F500").ClearContents 
Range("J2:O500").ClearContents 
Range("R2:Y500").ClearContents 
Range("A2:Y500").Interior.Color = xlNone 

If MsgBox("Are you sure you want to clear the Main Spreadsheet?", vbYesNo) = vbNo Then Exit Sub 

End Sub 

感谢

一个

+0

尝试...表(“主片”)......而不是 – Skaterhaz

+0

是一个包含不同的工作簿中的按钮,你的工作表“主页”? (这是我能想到发布的代码会导致错误的唯一原因。) – YowE3K

+0

请参阅[是。 in .Range必要时由.Cells定义?](https://stackoverflow.com/questions/36368220/is-the-in-range-necessary-when-defined-by-cells)以获取相关信息 – Jeeped

回答

2

代替Select“主表”,这是更好,如果你使用完全合格的对象。

我想你的意思是你的代码看起来像下面的代码:

Sub sbClearMainSpreadsheet() 

    ' have the input confirmation box before clearing the contents (not after) 
    If MsgBox("Are you sure you want to clear the Main Spreadsheet?", vbYesNo) = vbNo Then Exit Sub 

    With Worksheets("MAIN SHEET") 
     .Range("A2:F500, J2:O500, R2:Y500").ClearContents 
     .Range("A2:Y500").Interior.Color = xlNone 
    End With 


End Sub 
+2

甚至可能是'.Range(“A2:F500,J2:O500,R2:Y500”)。ClearContents' ...? – Jeeped

+0

@听说w kid会更好;)我现在不在我的电脑前,我稍后会更新它。 –