2017-09-27 7 views
1

ピボットテーブルを作成するマクロを作成しました。それは素晴らしい実行されますが、私は、提供されたスクリーンショットで円のコンテンツを却下したい...私はピボットの内部に合計を持っていません。グランドトータルの底だけ!私は自分のコードとスクリーンショットを提供しています。さらに、列Bの「行ラベル」テキストを「FDD」に置き換えることは可能ですか?ピボットテーブルを作成するためのVBAコード

enter image description here

enter image description here

 Sub aa() 

'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("Customs_report").Delete 
    Sheets.Add Before:=ActiveSheet 
    ActiveSheet.Name = "Customs_report" 
    Application.DisplayAlerts = True 
    Set PSheet = Worksheets("Customs_report") 
    Set DSheet = Worksheets("Zeikan") 

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

    'Define Pivot Cache 
    Set PCache = ActiveWorkbook.PivotCaches.Create _ 
    (SourceType:=xlDatabase, SourceData:=PRange). _ 
    CreatePivotTable(TableDestination:=PSheet.Cells(2, 2), _ 
    TableName:="PivotTable") 

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

    'Insert Row Fields 
    With ActiveSheet.PivotTables("PivotTable").PivotFields("Commodity Code") 
    .Orientation = xlRowField 
    .Position = 1 
    .Name = "Commodity Code" 
    End With 
    With ActiveSheet.PivotTables("PivotTable").PivotFields("Location") 
    .Orientation = xlRowField 
    .Position = 2 
    End With 

    'Insert Column Fields 
    With ActiveSheet.PivotTables("PivotTable").PivotFields("Quantity (cases/sw)") 
    .Orientation = xlDataField 
    .Position = 1 
    .Function = xlSum 
    .Name = "Sum of Quantity (cases/sw)" 
    End With 
    With ActiveSheet.PivotTables("PivotTable").PivotFields("Quantity (items)") 
    .Orientation = xlDataField 
    .Position = 2 
    .Function = xlSum 
    .Name = "Sum of Quantity (items)" 
    End With 
    With ActiveSheet.PivotTables("PivotTable").PivotFields("Net value") 
    .Orientation = xlDataField 
    .Position = 3 
    .Function = xlSum 
    .Name = "Sum of Net value" 
    End With 
    With ActiveSheet.PivotTables("PivotTable").PivotFields("Gross weight (Kg)") 
    .Orientation = xlDataField 
    .Position = 4 
    .Function = xlSum 
    .Name = "Sum of Gross weight (Kg)" 
    End With 
    With ActiveSheet.PivotTables("PivotTable").PivotFields("Net weight (Kg)") 
    .Orientation = xlDataField 
    .Position = 5 
    .Function = xlSum 
    .Name = "Sum of Net weight (Kg)" 
    End With 


    End Sub 

答えて

4

あなたが小計切り替えることができ:

PTable.LayoutRowDefault = xlTabularRow 
を平板状には、テーブルのレイアウトを変更し、ヘッダを変更する

With PTable.PivotFields("Commodity Code") 
.Orientation = xlRowField 
.Position = 1 
.Name = "Commodity Code" 
.Subtotals(1) = True 
.Subtotals(1) = False 
End With 

を入力してください。ところで、残りのコードでActiveSheet.PivotTables("PivotTable")ではなくPTableを使用する必要があります。

+0

完璧!私はそれが私を許さないので、5分で答えを受け入れるだろう!質問の第2部分はどうですか?任意のソリューションですか? –

+1

@PericlesFaliagas私は自分の投稿を更新しました。 – Rory

+0

最後に1つの質問!私はあなたの問題を示すために私のExcelの画像を更新しました。最後の行は行の値として空白です...なぜこれが起こり、どうすれば修正できますか? –

関連する問題