2010-08-28 98 views
1

這個問題讓我發瘋。我有以下代碼:VBA代碼只能在調試模式下工作,並在正常模式下運行時掛起

'unprotect sheet 
If.Range("Start").Row+1<.Range("End").Row then 
    .Rows(.Range("Start").Row+1 & ":" & .Range("End").Row-1).Select 
    Selection.Delete Shift:=xlUp 
    'protect sheet 
End if 

當我在調試模式下運行它並跟蹤代碼時,它完美地工作。但是,當以正常模式運行代碼(不調試)時,它會給我一個錯誤消息,因爲「範圍類的選擇方法失敗」此錯誤發生在恰好在IF語句之後的行:.Rows(.Range("Start").Row +1 .... 。 任何想法? 請幫忙。

+1

請使用代碼示例按鈕(「1010 101」)來重新格式化你的問題。這是非常難以閱讀。 – Foole 2010-08-28 23:41:51

回答

4

此錯誤通常意味着您正試圖選擇屬於非活動工作表的範圍。

幾乎總是不需要選擇任何內容:

.Rows(.Range("Start").Row+1 & ":" & .Range("End").Row-1).Delete Shift:=xlUp 
+0

完美!有效。所以,我做了什麼,只要我在代碼的任何地方選擇一個範圍,我首先激活相應的表格,然後選擇。 非常感謝!這非常有幫助! – guest1 2010-08-29 00:15:16

相關問題