2017-06-14 62 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會更好;)我現在不在我的電腦前,我稍後會更新它。 –