Какие команды следует вводить, чтобы не нужно было физически изменять номер листа при запуске макроса сводной таблицы и имени листа?
Dim pivotsheetname As String
Dim datasheetname As String
datasheetname = ActiveSheet.Name
ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
"Orders!R1C1:R51291C24", Version:=6).CreatePivotTable TableDestination:="", TableName:="PivotTable1", DefaultVersion:=6
Sheets("pivotsheetname").Select
Sheets("pivotsheetname").Name = datasheetname & "Pivot"
With ActiveSheet.PivotTables("PivotTable1").PivotFields("Country")
.Orientation = xlRowField
.Position = 1
End With
ActiveSheet.PivotTables("PivotTable1").AddDataField ActiveSheet.PivotTables( _
"PivotTable1").PivotFields("Sales"), "Sum of Sales", xlSum
ActiveSheet.PivotTables("PivotTable1").AddDataField ActiveSheet.PivotTables( _
"PivotTable1").PivotFields("Profit"), "Sum of Profit", xlSum
Range("C8").Select
Range("C18").Select
ActiveSheet.PivotTables("PivotTable1").CalculatedFields.Add "Cost incurred", _
"=SUM(Sales )-SUM(Profit )", True
ActiveSheet.PivotTables("PivotTable1").PivotFields("Cost incurred"). _
Orientation = xlDataField
Range("B4:C5").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.NumberFormat = "$#,##0.00"
Range("D6").Select
ActiveSheet.PivotTables("PivotTable1").AddDataField ActiveSheet.PivotTables( _
"PivotTable1").PivotFields("Shipping Cost"), "Sum of Shipping Cost", xlSum
Range("E8").Select
ActiveSheet.PivotTables("PivotTable1").CalculatedFields.Add _
"% of shipping cost", "=SUM('Shipping Cost' )/SUM('Cost incurred' )", True
ActiveSheet.PivotTables("PivotTable1").PivotFields("% of shipping cost"). _
Orientation = xlDataField
Range("F2").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Style = "Percent"
Range("D7").Select
With ActiveSheet.PivotTables("PivotTable1")
.InGridDropZones = True
.RowAxisLayout xlTabularRow
End With
Range("E9").Select
Application.GenerateGetPivotData = True
Application.GenerateGetPivotData = False
Range("D5").Select
End Sub