2014-07-14 92 views
0

我已經在它後面的列(即Data1 - > Label1,Data2 - > Label2等)定義了一列。我發現需要將數據字段添加到我的表單,它也將取決於當前命名的列(即Extra1 - > Label 1等)。Excel VBA - 以定義的名稱調用單個單元格

我可以創建所有新標籤,但我寧願讓這兩個單元都依賴於相同的標籤。我曾在一張廢紙上玩過,並且當有多個單元格時,無法使單元格與定義名稱的單元格相同。如果我只有一個,我沒有問題:

A   B 
Data1  Label1 
=Label1 

會在第二行給我Data1。

A   B   C 
Data1  Data2  Label1 
=Label1 

會給我一個#VALUE錯誤。

如何從這樣定義的名稱中獲取單個單元格?這是一個範圍嗎?試圖抓住它在VBA作爲Label1.Cells(x,x)也給我一個錯誤。我將不得不爲第二個數據列製作單獨的標籤(不理想)。

感謝,

+2

'範圍( 「Label1的」)VBA是明確的。細胞(X,X)'? – Chel

+0

是的,定義的名稱是現在範圍的名稱。在這裏的評論中使用@rdhs的建議。 – hnk

回答

1

您可以使用INDEX功能得到數據1在兩排:

=INDEX(Label1,1,1) 

要在你的例子返回數據2

=INDEX(Label1,1,2) 

EDIT1:這是VBA等價物NT

Range("Label1")(1) '~~> return Data1 
Range("Label1")(2) '~~> return Data2 

或者你可以

Range("Label1").Item(1, 1) '~~> return Data1 

下面是使用WorsheetFunction

WorksheetFunction.Index(Range("Label1"), 1, 1) '~~> return Data1 
+0

這很有幫助,但INDEX在VBA中不起作用,至少不如定義。我已經嘗試了一切:'Private Sub CommandButton1_Click()Dim bar As String Dim foo As Integer For foo = 1 To 5 bar =「space」&foo Cells(foo,4).Value = Worksheets(Sheet6).WorksheetFunction .Index(bar,1,1)Next End Sub'沒有運氣。如何讓工作表函數在VBA中工作? – JSM

+0

@JSM看到我的編輯。 – L42

+0

謝謝。這工作完美。 – JSM

相關問題