2014-03-26 38 views
1

我對excel-vba編程非常陌生,我正在學習如何使用工作表函數編寫自定義vba函數。使用工作表函數編寫自定義Excel函數的問題

如果我去一個單元格並輸入下面的公式,我會得到單元格名稱。

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

例如,如果我們輸入上面的公式單元格「A6」,單元將返回值= A6

現在我想寫一個VBA函數做同樣的事情如下:

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

然而,當我試圖如下使用細胞內這樣的功能:

=GetThisCellName() 

該小區將返回#VALUE!。我的代碼可能有什麼問題?

回答

1

如果你想返回小區的地址,從該公式被稱爲,使用Application.ThisCell

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

這正是我想要的。謝謝 – Pulimon

2

Address,和Column不是WorksheetFunction object的成員。你可以使用這個語法來獲得該單元的地址:

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

參見Range.Address property