Excel2007でマクロ作成中の初心者です。
やりたいことは
1)本ブックの中の「当月売上」シートを他ブックに貼付けたいです。
2)他ブックに貼り付けた「当月売上」シート名は、セルK1の日付に変更したいです。
すると、他ブックのシートが毎月順に、売上(2012年4月) 売上(2012年5月) 売上(2012年6月)というふうに増えます。
3)何月に作成しても、ブックの「当月売上」シートを貼り付けます。
四苦八苦して以下のコードをつくりましたが、「同じ名前のシート名に変更できません。」
というエラーがでるので、このエラーが出ないように、名前が同じ時は上書き保存し、違うときは新しいシート名を作るという
コードにしたいです。困ってます。どうかご指導お願いします。
Sub 売上シートの貼付け()
Dim WBK1 As Workbook ' 本ブックの
Dim WBK2 As Workbook ' 貼付け先他ブック
ChDir ThisWorkbook.Path + "\売上"
On Error Resume Next
Set WBK2 = Workbooks("24年度売上.xls")
On Error GoTo 0
If WBK2 Is Nothing Then
Set WBK2 = Workbooks.Open(ThisWorkbook.Path & "\売上\24年度売上.xlsm")
End If
Worksheets("当月売上").Copy After:=Workbooks("24年度売上.xlsm").Sheets(Workbooks("24年度売上.xlsm").Sheets.Count)
ActiveSheet.Name = Format(Range("K1").Value, "売上(yyyy年mm月)")
Application.DisplayFormulaBar = True
WBK2.Close SaveChanges:=True
Application.DisplayAlerts = True
Set WBK2 = Nothing
End Sub
Workbooks("24年度売上.xls")の有無を確認して処理を分けているように
シートも有無を確認して処理を分ければ
On Error Resume Next
Set SH = Workbooks("24年度売上.xls").Worksheets(Format(Range("K1").Value, "売上(yyyy年mm月)"))
On Error GoTo 0
If SH Is Nothing Then
'シートが無い場合の処理
Else
'シートが有る場合の処理
End If
お礼
ご回答ありがとうございます。ご指摘を参考にしてほぼ思い通りにできました。
補足
「当月売上」シートは、まちがいが有った時修正します。同じ「当月売上」シートという名でも修正後の シートで貼り付けたいので、上書きは絶対条件なのですが・・。