2017-10-26 6 views
0

これは私の最初の質問ですので、混乱することはお詫び申し上げます。Excelマクロで具体的なピボットテーブルを作成する

私は最近、ピボットテーブルを頻繁に扱う新しい仕事を始めました。ピボットテーブルウィンドウを開いてプロセスを少し高速化する簡単なショートカットを作成しましたが、もう少しやりたいと思っています。

与えられた情報グループ内のセルを選択したマクロを記録しようとしていました。ピボットテーブルをその情報グループから作成し、それを既存のドキュメントの新しい空セルに入れました。情報。私は、同じセルが常にテーブルなどを置くために空白ではないということを考えると、これはマクロなコードよりもコード化された解決策であるかもしれません。

これは、現在選択されているセルからテーブルを作成し、それを現在の選択範囲の下に2〜3セル配置することはできますか?このようにして、与えられた情報の一番下のセルをクリックして、テーブルがそれ自身の下に置かれるのを見ることができます。

事前にお問い合わせいただきありがとうございます。

  • ミッチェル
+0

をはい、VBAを使用して...あなたは、任意のコードを持っているか、あなたが欲しいものを実行しようとするのですか?これはコードサービスサイトではありません。 –

+0

データ範囲内にあるとき、alt、n、vはピボット可能なショートカットです。 – QHarr

+0

ありがとう、ありがとう。私はそれをやって、ポップアップボックスをスキップして、その同じ文書内のテーブルをすべて一つのショートカットに作成するという全面的な行動を目指していました。 – Magresti

答えて

1

はこれで十分です: クレジット:https://excelchamps.com/blog/vba-to-create-pivot-table/

Sub Test() 

    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 

    On Error Resume Next 
    'Set PSheet = Worksheets("PivotTable") 
    Set DSheet = Worksheets("Sheet1") 
    Set PSheet = Worksheets("Sheet1") 

    '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 = ActiveWorkbook.PivotCaches.Create _ 
    (SourceType:=xlDatabase, SourceData:=PRange). _ 
    CreatePivotTable(TableDestination:=PSheet.Cells(LastRow + 2, 2), _ 
    TableName:="SalesPivotTable") 

    'Insert Blank Pivot Table 
    Set PTable = PCache.CreatePivotTable _ 
    (TableDestination:=PSheet.Cells(LastRow + 2, 2), TableName:="SalesPivotTable") 

    'Insert Row Fields 
    With ActiveSheet.PivotTables("SalesPivotTable").PivotFields("Year") 
    .Orientation = xlRowField 
    .Position = 1 
    End With 
    With ActiveSheet.PivotTables("SalesPivotTable").PivotFields("Month") 
    .Orientation = xlRowField 
    .Position = 2 
    End With 

    'Insert Column Fields 
    With ActiveSheet.PivotTables("SalesPivotTable").PivotFields("Zone") 
    .Orientation = xlColumnField 
    .Position = 1 
    End With 

    'Insert Data Field 
    With ActiveSheet.PivotTables("SalesPivotTable") 
    .PivotFields ("Amount") 
    .Orientation = xlDataField.Position = 1 
    .Function = xlSum 
    .NumberFormat = "#,##0" 
    .Name = "Revenue " 
    End With 


End Sub 
関連する問題