|
▼りん さん:
早速有り難う御座います。
そう言う事です。
ピボット更新が1回だけ出来ます。閉じて開き直して1回は出来ます。
もう1回更新しようとするとエラー→保存出来ない状態になります。
これはピボットのあるシートのcells.clearが出来ないばかりでなく
このピボットからのindexで作っているテーブルの或るセルをクリアーしても新しい数字を入力してもエラー終了します(問題のマクロ実行後だと)
ところばこのセルは=month(menu!K9)と入っているだけなのです。
そこでmenuシートのrange("k9")を手入力でクリアーしてみますと
やはりマクロ実行後ではエラー終了しました。
そこでmenu!K9を事前にクリアー、マクロのこのシートとの関係も削除して
マクロを実行したのですが、それでも2回目実行時は ピボットのcells.clearの所でエラー終了します。
長くなって恐縮ですが問題のマクロは次のような物を連続実行します。
上のような事情でs_支払残高設定()を削除しても 2回目実行の際に
s_支払集計2()のcells.clearで
エラーしてフリーズになります。手動でこのピボットをクリアーしようとしてもフリーズします。どうかお助け下さい。
Sub s_支払残高設定()
Sheets("支払残高").Range("e1").Formula = "=month(menu!k9)"
Sheets("支払残高").Select
Range("h1:Al1").Select
Selection.FormulaR1C1 = "=IF(RC[-3]=12,1,RC[-3]+1)"
End Sub
Sub s_仕入集計2()
Dim l As Integer
Sheets("仕入台帳").Select
l = Range("A65536").End(xlUp).Row
Range("A2:X" & l).Select
Selection.Name = "仕入台帳"
Sheets("仕入集計").Activate
Sheets("仕入集計").Cells.Clear
ActiveSheet.PivotTableWizard SourceType:=xlDatabase, SourceData:="仕入台帳", _
TableDestination:="R1C1", TableName:="ピボットテーブル1"
ActiveSheet.PivotTables("ピボットテーブル1").AddFields RowFields:="コード", _
ColumnFields:="支払月"
With ActiveSheet.PivotTables("ピボットテーブル1").PivotFields("税込金額")
.Orientation = xlDataField
.Name = "合計 : 税込金額"
.Function = xlSum
On Error Resume Next
With ActiveSheet.PivotTables("ピボットテーブル1").PivotFields("コード")
.PivotItems("1000").Visible = False
End With
End With
ActiveSheet.PivotTables("ピボットテーブル1").PivotSelect "", xlDataAndLabel
Selection.Name = "買2"
Selection.Rows("2:2").Select
Selection.Name = "買行2"
ActiveSheet.PivotTables("ピボットテーブル1").PivotSelect "", xlDataAndLabel
Selection.Columns("a:a").Select
Selection.Name = "買列2"
End Sub
Sub s_支払集計2()
Dim myrow As Integer
Sheets("支払台帳").Select
myrow = Range("A65536").End(xlUp).Row
Range("A2:G" & myrow).Select
Selection.Name = "支払台帳"
Sheets("支払集計").Activate
Sheets("支払集計").Cells.Clear
ActiveSheet.PivotTableWizard SourceType:=xlDatabase, SourceData:="支払台帳", _
TableDestination:="R1C1", TableName:="ピボットテーブル2"
ActiveSheet.PivotTables("ピボットテーブル2").AddFields RowFields:="コード", _
ColumnFields:="月"
With ActiveSheet.PivotTables("ピボットテーブル2").PivotFields("支払額")
.Orientation = xlDataField
.Name = "合計 : 支払額"
.Function = xlSum
End With
ActiveSheet.PivotTables("ピボットテーブル2").PivotSelect "", xlDataAndLabel
Selection.Name = "支払2"
Selection.Rows("2:2").Select
Selection.Name = "支払行2"
ActiveSheet.PivotTables("ピボットテーブル2").PivotSelect "", xlDataAndLabel
Selection.Columns("a:a").Select
Selection.Name = "支払列2"
End Sub
Sub s_syuukei()
Dim r As Integer
Sheets("支払残高").Select
r = Range("A20000").End(xlUp).Row
If r > 2 Then
Range("e3:an" & r).ClearContents
Range( _
"e3:e" & r & ",h3:h" & r & ",k3:k" & r & ",n3:n" & r & ",q3:q" & r & ",t3:t" & r & ",w3:w" & r & ",z3:z" & r & ",ac3:ac" & r & ",af3:af" & r & ",ai3:ai" & r & ",al3:al" & r).Select
Selection.FormulaR1C1 = _
"=IF(ISERROR(INDEX(買2,MATCH(RC1,買列2,0),MATCH(R1C,買行2,0))),0,INDEX(買2,MATCH(RC1,買列2,0),MATCH(R1C,買行2,0)))"
Range( _
"f3:f" & r & ",i3:i" & r & ",l3:l" & r & ",o3:o" & r & ",r3:r" & r & ",u3:u" & r & ",x3:x" & r & ",aa3:aa" & r & ",ad3:ad" & r & ",ag3:ag" & r & ",aj3:aj" & r & ",am3:am" & r).Select
Selection.FormulaR1C1 = _
"=IF(ISERROR(INDEX(支払2,MATCH(RC1,支払列2,0),MATCH(R1C[-1],支払行2,0))),0,INDEX(支払2,MATCH(RC1,支払列2,0),MATCH(R1C[-1],支払行2,0)))"
Range( _
"g3:g" & r & ",j3:j" & r & ",m3:m" & r & ",p3:p" & r & ",s3:s" & r & ",v3:v" & r & ",y3:y" & r & ",ab3:ab" & r & ",ae3:ae" & r & ",ah3:ah" & r & ",ak3:ak" & r & ",an3:an" & r).Select
Selection.FormulaR1C1 = "=if(iserror(RC[-3]+RC[-2]-RC[-1]),"""",RC[-3]+RC[-2]-RC[-1])"
Else
MsgBox "集計データがありません"
End If
End Sub
>hisao さん、おはようございます。
>
>>突然 ピボットテーブルを更新出来なくなりました。
>>つまり ファイルを開いて1回目は実行出来るのですが
>>同じマクロをもう1度実行すると
>>ピボットテーブルのあるシートをクリアーする所でエラーが出ます。
> データを入力→保存→いったん閉じて開きなおす→ピボット更新
>
> という流れでは作業できるという事でしょうか?
|
|