将数据透视表传递给VBA中的函数ByRef错误

我有一个简单的function:

Function PtName(pt As PivotTable) PtName = pt.Name End Function 

在即时窗口中input以下内容:

 set pt = ActiveSheet.PivotTables(1) debug.Print PtName(pt) 

我得到一个ByRef参数types不匹配错误。 当我这样做:

 debug.Print typename(pt) 

它返回PivotTable

我究竟做错了什么?

真的不知道你在这里做什么。

 Sub Test() s = PtName(ActiveSheet.PivotTables(1)) ' Call function to assign pivottable name to variable "s" Debug.Print s End Sub Function PtName(pt As PivotTable) PtName = pt.Name End Function 

返回:PivotTable1

你不需要这个function,你可以这样做。

 Sub Test() s = ActiveSheet.PivotTables(1).Name Debug.Print s End Sub 

这也返回:PivotTable1


另外,如果程序甚至没有运行,则不能在立即窗口中分配variables,并尝试在单独的代码行上引用它。