|
hisaoさん、こんにちは
レスがつかないようなので・・
>何故かerrorが出て脱出できません。構文の誤りをお教え下さい。
On Error GoToで飛んだ先(エラー処理ルーチン)でさらにエラーが発生すると正常にGoTo処理されません。
このような処理の場合通常はモジュールの先頭で
On Error Resume Next
を記載しておいて、Err.Numberにより処理を分岐します。
例えばこんな感じ・・
ただしエラーナンバーは発生する可能性のあるものを定義してください。
ここでは、「オブジェクト変数または With ブロック変数が設定されていません。」エラーを想定して例示しています。
また、GoToもできれば使用しないほうがいいと思いますので、その点は再考をお勧めします。
#ラベルに日本語は好ましくないように思いますがいかがでしょうか?>諸氏
>Sub 工番集計()
On Error Resume Next
>p = InputBox("工番を入力して下さい")
>
>'原価集計から抽出
>
>Sheets("原価集計").Select
>a = Range("A2500").End(xlUp).Row
>b = Range("HA2").End(xlToLeft).Column
>Range(Cells(1, 1), Cells(a, b)).Name = "kouban"
>Range("KOUBAN").Select
'On Error GoTo zenkouban この行は削除
> Selection.FIND(What:=p, After:=ActiveCell, LookIn:=xlFormulas, LookAt _
> :=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
> False).Activate
If Err.Number=91 Then
GoTo zenkouban
End If
>ActiveCell.Offset(0, b - 1).Select
>Selection.ShowDetail = True
>Q = ActiveSheet.Name
>L = Range("a50000").End(xlUp).Row
>ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:= _
> Q & "!R1c1:R" & L & "C19").CreatePivotTable TableDestination:="原価計算!r40C1", _
> TableName:="ピボットテーブル2"
>Sheets("原価計算").Select
>' ActiveSheet.PivotTables("ピボットテーブル2").SmallGrid = False
> With ActiveSheet.PivotTables("ピボットテーブル2").PivotFields("仕入先")
> .Orientation = xlRowField
> .Position = 1
> End With
> With ActiveSheet.PivotTables("ピボットテーブル2").PivotFields("税抜金額")
> .Orientation = xlDataField
> .Position = 1
> .Function = xlSum
> End With
> Sheets(Q).Select
>ActiveWindow.SelectedSheets.Delete
>
>'昨年原価からの抽出
>
>zenkouban:
>Sheets("昨年原価").Select
>a = Range("A2500").End(xlUp).Row
>b = Range("HA2").End(xlToLeft).Column
>Range(Cells(1, 1), Cells(a, b)).Name = "zenkouban"
>Range("zenKOUBAN").Select
>
'On Error GoTo 注文台帳
> Selection.FIND(What:=p, After:=ActiveCell, LookIn:=xlFormulas, LookAt _
> :=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
> False).Activate
If Err.Number=91 Then
GoTo 注文台帳
End If
>ActiveCell.Offset(0, b - 1).Select
>Selection.ShowDetail = True
>r = ActiveSheet.Name
>L = Range("a50000").End(xlUp).Row
>ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:= _
> r & "!R1c1:R" & L & "C19").CreatePivotTable TableDestination:="原価計算!r40C3", _
> TableName:="ピボットテーブル3"
>
>Sheets("原価計算").Select
>' ActiveSheet.PivotTables("ピボットテーブル2").SmallGrid = False
> With ActiveSheet.PivotTables("ピボットテーブル3").PivotFields("仕入先")
> .Orientation = xlRowField
> .Position = 1
> End With
> With ActiveSheet.PivotTables("ピボットテーブル3").PivotFields("税抜金額")
> .Orientation = xlDataField
> .Position = 1
> .Function = xlSum
> End With
> Sheets(r).Select
>ActiveWindow.SelectedSheets.Delete
>
>'注文台帳からの抽出
>
>注文台帳:
>Sheets("原価集計2").Select
>
>a = Range("A2500").End(xlUp).Row
>b = Range("HA2").End(xlToLeft).Column
>Range(Cells(1, 1), Cells(a, b)).Name = "kouban"
>Range("KOUBAN").Select
'On Error GoTo 前注文
> Selection.FIND(What:=p, After:=ActiveCell, LookIn:=xlFormulas, LookAt _
> :=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
> False).Activate
If Err.Number=91 Then
GoTo 前注文
End If
>ActiveCell.Offset(0, b - 1).Select
>Selection.ShowDetail = True
>Q = ActiveSheet.Name
>L = Range("a50000").End(xlUp).Row
>ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:= _
> Q & "!R1c1:R" & L & "C19").CreatePivotTable TableDestination:="原価計算!r40C6", _
> TableName:="ピボットテーブル4"
>Sheets("原価計算").Select
>' ActiveSheet.PivotTables("ピボットテーブル2").SmallGrid = False
> With ActiveSheet.PivotTables("ピボットテーブル4").PivotFields("発注先")
> .Orientation = xlRowField
> .Position = 1
> End With
> With ActiveSheet.PivotTables("ピボットテーブル4").PivotFields("金額")
> .Orientation = xlDataField
> .Position = 1
> .Function = xlSum
> End With
> Sheets(Q).Select
>ActiveWindow.SelectedSheets.Delete
>
>'昨年原価2からの抽出
>
>前注文:
>Sheets("昨年原価2").Select
>a = Range("A2500").End(xlUp).Row
>b = Range("HA2").End(xlToLeft).Column
>Range(Cells(1, 1), Cells(a, b)).Name = "zenkouban"
>Range("zenKOUBAN").Select
>
'On Error GoTo 終わり
>
>
> Selection.FIND(What:=p, After:=ActiveCell, LookIn:=xlFormulas, LookAt _
> :=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
> False).Activate
If Err.Number=91 Then
GoTo 終わり
End If
>ActiveCell.Offset(0, b - 1).Select
>Selection.ShowDetail = True
>r = ActiveSheet.Name
>L = Range("a50000").End(xlUp).Row
>ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:= _
> r & "!R1c1:R" & L & "C27").CreatePivotTable TableDestination:="原価計算!r40C8", _
> TableName:="ピボットテーブル5"
>Sheets("原価計算").Select
>' ActiveSheet.PivotTables("ピボットテーブル2").SmallGrid = False
> With ActiveSheet.PivotTables("ピボットテーブル5").PivotFields("発注先")
> .Orientation = xlRowField
> .Position = 1
> End With
> With ActiveSheet.PivotTables("ピボットテーブル5").PivotFields("金額")
> .Orientation = xlDataField
> .Position = 1
> .Function = xlSum
> End With
> Sheets(r).Select
>ActiveWindow.SelectedSheets.Delete
>Sheets("原価計算").Select
>Cells.Select
>
> Selection.Columns.AutoFit
>
>終わり:
>
>End Sub
|
|