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

时间:2014-10-15 15:56:05

标签: excel vba

我有一个简单的功能:

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

在即时窗口中,我输入以下内容:

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

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

debug.Print typename(pt)

返回PivotTable

我做错了什么?

1 个答案:

答案 0 :(得分:2)

真的不确定你在这里想做什么。

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

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

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

其中还返回:PivotTable1


此外,您无法在立即窗口中指定变量,如果程序甚至无法运行,请尝试在单独的代码行中引用该变量。