2013-01-21 182 views
0

我有一個名爲Book.a的單元名稱,如果單元格在一個範圍內(B1:I10),我必須檢查if條件。如何操作? 我試過'相交'的方法,但沒有爲我工作。 請建議一些答案。VBA:如何檢查單元格範圍?

+0

我正在回我的評論。 :)用'intersect method'檢查兩個答案。 – bonCodigo

+0

該死!我張貼沒有搜索!可能重複[VBA測試如果單元格在一個範圍](http://stackoverflow.com/questions/5183374/vba-test-if-cell-is-in-a-range) –

回答

1

這是你想什麼呢?

Option Explicit 

Sub Sample() 
    Dim rng As Range 

    With Sheets("Sheet1") 
     On Error Resume Next 
     Set rng = Application.Intersect(.Range("Book.a"), .Range("B1:I10")) 
     On Error GoTo 0 

     If Not rng Is Nothing Then 
      MsgBox "Range `Book.a` is a part of `B1:I10`" 
     Else 
      MsgBox "Range `Book.a` not found or is not a part of `B1:I10`" 
     End If 
    End With 
End Sub 
+0

我正在編輯和ddin't看到你在輸入;)+1 – bonCodigo

0

似乎無法在一個範圍內搜索命名範圍。所以我把我的評論回來。 什麼你可以試試這個:對於像book.a每個命名範圍,你可以檢查其地址intersect給定的主要範圍 ..

Dim objName As Name 
Dim mainRange as Range 

Sheet1.Unprotect 
Set mainRange = ActiveWorkbook.Sheets(1).Range("B1:I10") 
For Each objName In ActiveWorkbook.Names 
    strName = objName.Name 
    If InStr(1, strName, "book.a", vbTextCompare) > 0 Then 
     If Intersect(objName.Address, mainRange) Is Nothing then 
     '-- not within 
     Else 
     '-- within 
     End If 
    End If 
Next 
Sheet1.Protect 
相關問題