這裏,將返回所有包含傳遞給函數的範圍的範圍名稱的功能。例如,您可以將WorkSheet.Range[ColNumToAlpha(CurrCol)+IntToStr(HRow)]
傳遞給此函數。
Function TellNamedRanges(ByVal Target As Range) As String
Dim NamedRange As Name
Dim FoundOne As Boolean
Dim RangesFound As String
FoundOne = False
RangesFound = "Found these ranges: "
For Each NamedRange In ThisWorkbook.Names
If Not Application.Intersect(Target, Range(NamedRange.RefersTo)) Is Nothing Then
FoundOne = True
RangesFound = RangesFound & NamedRange.Name & " "
End If
Next NamedRange
If FoundOne = False Then
TellNamedRanges = RangesFound & "none found"
Else
TellNamedRanges = RangesFound
End If
End Function
這是黃金。我用這個在delphi中用類似的代碼來創建。現在的問題是如果目標沒有定義我的代碼崩潰的名稱,關於如何檢查它的任何想法選擇範圍命名? – Amiru
我設計了這個返回信息「none found」,如果Target不存在於任何命名範圍內,但當然這不是有效的範圍地址。你可能需要處理嗎? –
我以爲我沒有,但看着這些文件,我確實需要。所以我想檢查的是傳遞目標有一個名稱 – Amiru