2017-01-25 26 views
0

我相信我正在尋找範圍函數的反函數。我在我的工作表和事件宏中有一個命名的Range,我有興趣獲取範圍定​​義字符串,例如「A1:A12」。這是我工作的代碼:谷歌搜索「Excel中的VBA函數可以返回範圍的單元格ID嗎?」

Private Sub UserForm_Initialize() 
    Dim MyData As Range 
    Dim r As Long 
    With Me.ListBox1 
     .RowSource = "" 
     Set MyData = Worksheets("Sheet1").Range("A2:D100") 'Adjust the range accordingly 
     .List = MyData.Cells.Value 
     For r = .ListCount - 1 To 0 Step -1 
      If .List(r, 3) = "" Then 
       .RemoveItem r 
      End If 
     Next r 
    End With 
End Sub 

我寧願在「設置邁德特=」語句中使用範圍的名稱,而不是硬編碼範圍的事件宏。

+0

你能分享你的'命名Range'地址確定指標?你的'名字範圍'的名字是什麼?它是工作簿級別還是工作表級別? –

+1

如果您希望將「myData」設置爲「OnlinePayees」工作表上的「名稱」爲「OnlinePayeeNames」的範圍,則可以使用「設置MyData =工作表(」OnlinePayees「)。Range(」OnlinePayeeNames「) ' – YowE3K

回答

0

如果你只是想一個範圍的地址,使用

Dim MyRange as Range 
Set MyRange = Worksheets("Sheet1").Range("A2:D100") 
' Here do what you want 
Msgbox MyRange.Address 

。地址將返回 「A2:D100」

https://msdn.microsoft.com/fr-fr/library/office/ff837625.aspx

+0

我有興趣在工作表中留下範圍的定義,而不是在事件宏中對其進行硬編碼。我試過: – Geneous42

+0

你能解釋一下「範圍定義」和「硬編碼」之間的區別嗎? –

+0

我有興趣將範圍的定義留在工作表中,而不是在事件宏中對其進行硬編碼。我想: MSGBOX工作表(「OnlinePayees」)OnlinePayeeNames.Address 其中OnlinePayeeNames是區域名稱,但得到#438「對象不支持此屬性或方法」 – Geneous42