[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『ピボットの自動記録から修正したらエラーになってしまう;;』(モヘンジョダロ遺跡)
すみません、教えてください>< ピボット集計をマクロの自動記録で作ったんです。 それが●オリジナルです。でもあまりにも汚いしダメだなぁって思って ネットで検索し●使用プログラムを見つけたのでそれを元にして 一番下の●変換後を作ったんですがエラーが起こってしまいます>< 何がどういけないのかさっぱりわからず、困っています。 どうかお力をお貸しください><
●オリジナル 変換.Worksheets("変換場所").Activate ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _ "変換場所!A1:S" & Range("E65536").End(xlUp).Row, Version:=xlPivotTableVersion14).CreatePivotTable _ TableDestination:="ビボット作成!R2C1", TableName:="プロダクトコード", _ DefaultVersion:=xlPivotTableVersion14 Sheets("ビボット作成").Select Cells(2, 1).Select With ActiveSheet.PivotTables("プロダクトコード").PivotFields("プロダクトコード") .Orientation = xlRowField .Position = 1 End With With ActiveSheet.PivotTables("プロダクトコード").PivotFields("PCODE") .Orientation = xlRowField .Position = 2 End With ActiveSheet.PivotTables("プロダクトコード").AddDataField ActiveSheet.PivotTables( _ "プロダクトコード").PivotFields("決定金額"), "合計 / 決定金額", xlSum Range("A1").Select
Range("A2").Select ActiveSheet.PivotTables("プロダクトコード").CompactLayoutRowHeader = _ "プロダクトコード/PCODE" Range("A3").Select Columns("A:A").EntireColumn.AutoFit Range("A1").Select
●使用プログラム Dim ws As Worksheet Dim pvc As PivotCache Dim pvt As PivotTable Set ws = Sheets.Add Set pvc = ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, _ SourceData:="Sheet1!R1C1:R10C3", _ Version:=xlPivotTableVersion14) Set pvt = pvc.CreatePivotTable(TableDestination:=ws.Name & "!R3C1", _ TableName:="ピボットテーブル1", _ DefaultVersion:=xlPivotTableVersion14) With pvt With .PivotFields("担当") .Orientation = xlRowField .Position = 1 End With With .PivotFields("分類") .Orientation = xlColumnField .Position = 1 End With .AddDataField .PivotFields("金額"), "合計 / 金額", xlSum End With
●変換後 Dim ワークシート As Worksheet Dim ピボット範囲 As PivotCache Dim ピボットテーブル As PivotTable
Set ワークシート = 変換.Worksheets("変換場所") Set ピボット範囲 = ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, _ SourceData:="変換場所!A1:S" & Range("E65536").End(xlUp).Row, _ Version:=xlPivotTableVersion14) ☆ Set ピボットテーブル = ピボット範囲.CreatePivotTable(TableDestination:=ワークシート.Name & "ビボット作成!R2C1", _ ☆ TableName:="プロダクトコード", _ ☆ DefaultVersion:=xlPivotTableVersion14) With ピボットテーブル With .PivotFields("プロダクトコード") .Orientation = xlRowField .Position = 1 End With With .PivotFields("PCODE") .Orientation = xlColumnField .Position = 1 End With .AddDataField .PivotFields("決定金額"), "合計 / 決定金額", xlSum End With
With ピボットテーブル With .PivotTables("プロダクトコード") .CompactLayoutRowHeader = "プロダクトコード/PCODE" End With .Columns("A:A").EntireColumn.AutoFit End With
エラー内容:実行時エラー'5';プロシージャの呼び出し、または引数が不正です。 場所は星マークのところです。 なにとぞ、よろしくお願いします><
< 使用 Excel:Excel2010、使用 OS:Windows7 >
Range("E65536").End(xlUp).Row
(得たい値は、ワークシート.Range("E65536").End(xlUp).Row ではないかと予想)
(???) 2015/03/13(金) 11:59
>☆ Set ピボットテーブル = ピボット範囲.CreatePivotTable(TableDestination:=ワークシート.Name & "ビボット作成!R2C1" ここの部分
>☆ Set ピボットテーブル = ピボット範囲.CreatePivotTable(TableDestination:=ワークシート.Name & "!R2C1" か >☆ Set ピボットテーブル = ピボット範囲.CreatePivotTable(TableDestination:="ビボット作成!R2C1" のどちらかではないのか? (ねむねむ) 2015/03/13(金) 12:41
(???)さん、ありがとうございました。名前が???と表示されているのでそのままの形で返信します。 Range("E65536").End(xlUp).Row から ワークシート.Range("E65536").End(xlUp).Rowに 治しましたら治した個所で エラー内容:実行時エラー'5';プロシージャの呼び出し、または引数が不正です。 と出てしまったので元に戻しました。 ありがとうございました。
ねむねむさん、ありがとうございました。 Set ピボットテーブル = ピボット範囲.CreatePivotTable(TableDestination:="ビボット作成!R2C1" 2個目の方に変更しましたら無事に行きました。ワークシートって記述が邪魔だったのですね。 なんでかはいまだにわかりませんが(汗
すみません、新たな問題が発生しました。 追加で質問なんですが、 エラー内容:実行時エラー'438';オブジェクトは、このプロパティまたはメソッドを サポートしていません。 というエラーとともに下記の星の場所でVBAが止まってしまいます>< どうしてなんでしょうか?
With ピボットテーブル ☆ With .PivotTables("プロダクトコード") .CompactLayoutRowHeader = "プロダクトコード/PCODE" End With .Columns("A:A").EntireColumn.AutoFit End With (モヘンジョダロ遺跡) 2015/03/13(金) 13:26
(モヘンジョダロ遺跡) 2015/03/13(金) 14:37
(モヘンジョダロ遺跡) 2015/03/13(金) 16:40
みんながみんな何も追加情報もないのにただ、上げるだけの書き込みをして上にあげようとしだしたらどうなることやら。 (マルチーズ) 2015/03/13(金) 16:46
Dim ワークシート As Worksheet Dim ピボット範囲 As PivotCache Dim ピボットテーブル As PivotTable
Set ワークシート = Worksheets("変換場所") Set ピボット範囲 = ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, _ SourceData:="変換場所!A1:S" & Range("E65536").End(xlUp).Row, _ Version:=xlPivotTableVersion14) Set ピボットテーブル = ピボット範囲.CreatePivotTable(TableDestination:="ビボット作成!R2C1", _ TableName:="プロダクトコード", _ DefaultVersion:=xlPivotTableVersion14)
With ピボットテーブル With .PivotFields("プロダクトコード") .Orientation = xlRowField .Position = 1 End With With .PivotFields("PCODE") .Orientation = xlColumnField .Position = 1 End With .AddDataField .PivotFields("決定金額"), "合計 / 決定金額", xlSum .CompactLayoutRowHeader = "プロダクトコード/PCODE" End With
Sheets("ビボット作成").Columns("A:A").EntireColumn.AutoFit (???) 2015/03/13(金) 18:21
おはようございます。 返信遅くなってしまって申し訳ございません。 ???さんのおかげでエラーも何もなく 無事に処理ができました。 本当にありがとうございました。
ただ今から、どうしてこの記述で動くのか じっくり見て理解していこうと思っています。
本当にありがとうございました。
追伸 なかなか回答がつかずほかの方の回答がじゃんじゃんついていって とても寂しくなってしまって(時間的な余裕はありました) 変な追記な書き込みしてしまい 申し訳ございませんでした;; (モヘンジョダロ遺跡) 2015/03/16(月) 09:37
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.