2016-02-11 147 views
1

我在工作表上有幾個命名列。我想將列號發送給將返回列名稱的函數。從列號獲取列名?

例如,如果列1被命名爲「apple」,我想將列號1傳遞給返回列名稱「apple」的函數。我的嘗試:

Function getColName(colNumber As Integer) As String 
'return column name when passed column number 

    getColName = Cells(1, colNumber).Column.Name 

End Function 

如何獲取此代碼的工作?

+1

嘗試'getColName =細胞(1,colNumber).Value' – Fadi

+1

列在Excel中做沒有名字。您可以命名一個範圍,或者@Fadi正在說找到第一個單元格的值,該單元格通常是描述列中值的標籤。 –

+0

@Scott Craner,你誤解了我。我已經命名了整個第1列(如果您願意,可以列A)「apple」(如果您願意,也可以選擇[apple])。我想將列號(本例中爲1)發送到返回列名稱的函數。 – jmaz

回答

0

試試這個:

set cell_address = Worksheet("Sheet1").Cells(1,1) 
MsgBox cell_address.address(RowAbsolute:=False, ColumnAbsolute=False) 

「返回 「A1」 可以在範圍( 「A1」),以及使用它,並獲得更多的功能。

**Note**: RowAbsolute:=False, ColumnAbsolute=False are optional 

的詳細資料:

https://msdn.microsoft.com/en-us/vba/excel-vba/articles/range-address-property-excel

非VBA: https://exceljet.net/formula/convert-column-number-to-letter