2016-02-11 105 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