Excel 我的透视表VBA代码有什么问题?

Excel 我的透视表VBA代码有什么问题?,excel,vba,pivot-table,Excel,Vba,Pivot Table,我在这里添加了创建工作表并用透视表填充的代码。每次都会创建工作表,但透视表不会。没有错误消息。想法 我尝试过从工作表名称中删除空格,添加更详细的定义(来自我在这里找到的类似代码) 我希望创建一个名为MBPivotTable的新工作表,其中包含一个Pivot表。相反,只创建工作表而不创建透视表,并且没有错误消息。仅供参考,我没有在这里添加完整的代码,因为我必须想象错误在这一部分,这就是为什么您没有看到“End Sub”部分,但它在完整的代码中。在错误恢复下一步中隐藏了问题。请将其注释掉并重新运行代

我在这里添加了创建工作表并用透视表填充的代码。每次都会创建工作表,但透视表不会。没有错误消息。想法

我尝试过从工作表名称中删除空格,添加更详细的定义(来自我在这里找到的类似代码)


我希望创建一个名为MBPivotTable的新工作表,其中包含一个Pivot表。相反,只创建工作表而不创建透视表,并且没有错误消息。仅供参考,我没有在这里添加完整的代码,因为我必须想象错误在这一部分,这就是为什么您没有看到“End Sub”部分,但它在完整的代码中。

在错误恢复下一步中
隐藏了问题。请将其注释掉并重新运行代码。可能的错误:建议对
SourceData
参数使用
String
:从:传递范围对象时,建议您使用字符串指定工作簿、工作表和单元格范围,或设置命名范围并将名称作为stringOk我删除了“On Error Resume Next(错误恢复下一步)”部分,第一个错误出现在Set-PCache(设置PCache)行中。我修复了这个错误,现在在“Set-PTable(设置可选项)”行中出现了一个我没有看到的错误。确切的错误消息是什么?“运行时roor 1004:此命令至少需要两行源数据。不能仅对一行中的选定内容使用该命令。试试下面的“它接着解释如果你正在创建一个透视表,该怎么做,但是它在msgbox中被切断了,所以我不能说出它说了什么。
Private Sub CommandButton2_Click()

'Declare Variables
Dim PSheet As Worksheet
Dim DSheet As Worksheet
Dim PCache As PivotCache
Dim PTable As PivotTable
Dim PRange As Range
Dim LastRow As Long
Dim LastCol As Long

'Insert a New Blank Worksheet
    On Error Resume Next
    Application.DisplayAlerts = False
    Worksheets("MBPivotTable").Delete
    Sheets.Add Before:=Worksheets("MB Evaluation")
    ActiveSheet.Name = "MBPivotTable"
    Application.DisplayAlerts = True

    Set PSheet = Worksheets("MBPivotTable")
    Set DSheet = Worksheets("MB Raw Data")

    'Define Data Range
    LastRow = DSheet.Cells(Rows.Count, 1).End(xlUp).Row
    LastCol = DSheet.Cells(1, Columns.Count).End(xlToLeft).Column
    Set PRange = DSheet.Cells(1, 1).Resize(LastRow, LastCol)

    'Define Pivot Cache
    Set PCache = Worksheets("MB Raw Data").PivotCaches.Create(SourceType:=xlDatabase, SourceData:=PRange)

    'Insert Blank Pivot Table
    Set PTable = PCache.CreatePivotTable(TableDestination:=PSheet.Cells(1, 1), TableName:="MBPivotTable")