Я добавил код, который нашел здесь, чтобы создать лист и заполнить его сводной таблицей. Рабочий лист создается каждый раз, а сводная таблица - нет. Нет сообщений об ошибках. Мысли?
Я попытался удалить пробелы из имен листов, добавив более подробные определения (из похожих кодов, которые я нашел здесь)
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")
Я ожидаю, что новый лист с именем MBPivotTable будетсозданный с сводной таблицей в нем. Вместо этого создается только рабочая таблица без сводной таблицы и без сообщений об ошибках. К вашему сведению, я не добавил весь код здесь, потому что я должен представить, что ошибка в этой части, поэтому вы не видите часть «End Sub», но она есть в полном коде.