2012-12-25 53 views

回答

0

理想情況下,您應該避免Selection altogther。但是,對於你的問題問作爲

  1. 測試,如果選擇包含行1
  2. 如果確實如此,那麼第二個測試運行,測試如果B1包含在Selection,如果是程序退出,如果代碼不會繼續。

它始終是最好的代碼範圍,打破必須以最常見的早期測試的出口被首先測試滿足到單獨測試兩個獨立的測試。如果第一個條件失敗,則運行And並測試第二個條件的效率更高。

代碼

Sub TestExit() 
Dim rng1 As Range 
If Not Intersect(Rows(1), Selection) Is Nothing Then 
Set rng1 = Intersect(Selection, [b1]) 
If rng1 Is Nothing Then Exit Sub 
End If 
End Sub 
+0

對不起,可我知道爲什麼'Selection'不是一個理想的選擇嗎?我發現它很容易使用。 –

+0

你的完整代碼是什麼 - 也許是一個新的問題?選擇是*通常*沒有必要,再加上它會導致編碼錯誤 – brettdj

+0

我會在新問題中發佈我的代碼。會讓你更新。謝謝! –

0

If Selection.row = 1 And Selection.Column <> 2 Then Exit Sub

+0

如果A1和B1都被選中,則失敗。你似乎沒有閱讀我以前的文章,關於避免一個無關緊要的'And' – brettdj