2014-01-14 74 views
1

我想使用定義的名稱填充Excel文件。我現在喜歡做的是,一旦我搬到一個牢房,例如Worksheet1!$ A $ 8,我想檢索該單元格的定義名稱,告訴我需要什麼數據。現在,這是我得到的,只給我.... $ 8美元,我期望的是PROD_CATEGORY,因爲這是我定義的名稱爲該單元格。真的很感謝任何人都可以提供幫助。獲取通過範圍在Excel工作表中定義的名稱

WorkSheet.Range[ColNumToAlpha(CurrCol)+IntToStr(HRow)].Name 

感謝,

回答

1

這裏,將返回所有包含傳遞給函數的範圍的範圍名稱的功能。例如,您可以將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 
+0

這是黃金。我用這個在delphi中用類似的代碼來創建。現在的問題是如果目標沒有定義我的代碼崩潰的名稱,關於如何檢查它的任何想法選擇範圍命名? – Amiru

+0

我設計了這個返回信息「none found」,如果Target不存在於任何命名範圍內,但當然這不是有效的範圍地址。你可能需要處理嗎? –

+0

我以爲我沒有,但看着這些文件,我確實需要。所以我想檢查的是傳遞目標有一個名稱 – Amiru

相關問題