使用工作表函数编写自定义Excel函数的问题

我对excel-vba编程非常陌生,我正在学习如何使用工作表函数编写自定义的vba函数。

如果我去一个单元格并input下面的公式,我会得到单元格的名称。

=ADDRESS(ROW(), COLUMN(), 4) 

例如,如果我们将上面的公式input到单元格“A6”中,单元格将返回值= A6

现在我正在尝试编写一个vba函数来完成如下所示的完全相同的操作:

 Function GetThisCellName() As String GetThisCellName= WorksheetFunction.Address(WorksheetFunction.Row(), WorksheetFunction.Column(), 4) End Function 

但是,当我试图在一个单元格内使用此function,如下所示:

 =GetThisCellName() 

该单元格将返回#VALUE! 。 我的代码可能有什么问题?

如果你想返回单元格的地址,使用Application.ThisCell :

 Function GetThisCellName() As String GetThisCellName = Application.ThisCell.Address(False, False) End Function 

AddressRowColumn不是WorksheetFunction对象的成员。 您可以使用此语法来获取单元格的地址:

 Function GetThisCellName() As String GetThisCellName = ActiveCell.Address(False, False, xlA1) End Function 

另请参阅Range.Address属性