2017-03-20 41 views
1

下面的自定義函數在引用另一個單元格的單元格中輸入時不起作用。我不懂爲什麼。有人知道答案嗎?SpecialCell(xlCellTypeLastCell)在Excel中的自定義函數中不起作用

Public Function SpecialCellBroken(rng As Range) 
Debug.Print rng.Worksheet.Cells.Address 
Debug.Print rng.Worksheet.Cells.SpecialCells(xlCellTypeLastCell).Address 

SpecialCellBroken = rng.Worksheet.Cells.SpecialCells(xlCellTypeLastCell).Address 
End Function 

返回調試窗口:

$1:$1048576 
$1:$1048576 



但是,下面的子工作正常,返回最後一個單元格地址:在調試窗口

Sub SpecialCellWorksFine() 
    Debug.Print Selection.Worksheet.Cells.Address 
    Debug.Print Selection.Worksheet.Cells.SpecialCells(xlCellTypeLastCell).Address 

    Selection.Worksheet.Cells.SpecialCells(xlCellTypeLastCell).Select 
End Sub 

返回:

$1:$1048576 
$J$21 

同樣參考工作表的範圍與Parent不起作用。 參數rng嘗試ByVal。也沒有效果更好。 有什麼建議這裏有什麼問題?謝謝。

+1

SpecialCells在UDF()中不起作用。 –

回答

1

.SpecialCells(xlCellTypeLastCell)無法在UDF中工作,因爲UDF無法與Excel進行交互(或當時正在使用的程序)。你雖然可以做的是:

Sub SpecialCellWorksFine() 
x = Selection.Worksheet.Cells.SpecialCells(xlCellTypeLastCell).Address(False, False) 

n = y(x) 

End Sub 

Public Function y(x As String) 
'Code goes here 
End Function 

這已被簡化,但主要是一樣的,你指定你想進入的UDF 你怎麼稱呼它之前再拉你想進入的人什麼樣的價值觀UDF(我相信的限制是30)

相關問題