0

というセル名があります。セルが範囲内にあるかどうかBook.aを確認する必要がifあります( B1:I10)。これを行うには? これには「交差」メソッドを試しましたが、うまくいきませんでした。いくつかの答えを提案してください。

4

2 に答える 2

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
于 2013-01-21T11:43:57.373 に答える
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
于 2013-01-21T11:36:01.467 に答える