解決済
シートコピーで失敗をしています。どうかご教示いただけないでしょうか?
説明を箇条書きにさせていただきます。
・シート名は西暦からの取得・2年分作る・去年のシートは自動削除・シートが削除されるまで何故かシートを作ってくれない。
このマクロを起動するとシートを望んだとおり変数入りシートをコピーしてくれますがシステム日付を1年増やすと何故か作ってくれなくなっていしまいます。
Sub copySheet()
Dim sheetNY As Worksheet Dim sheetTY As Worksheet
Dim SNameNY As String Dim SNameTY As String
Dim rainen As Integer Dim kotoshi As Integer
Dim Found As Boolean
Found = False
rainen = Year(Date) + 1
kotoshi = Year(Date)
'来年用シート作成
SNameNY = "土井" & rainen
For Each SheetNY In Worksheets
If SheetNY.Name = SNameNY Then
Found = True
Exit For
End If
Next
If Found = False Then
Set SheetNY = Worksheets("土井")
SheetNY.Copy Before:=SheetNY
ActiveSheet.Name = SNameNY
End If
'今年用シート作成 SNameTY = "土井" & kotoshi
For Each SheetTY In Worksheets
If SheetTY.Name = SNameTY Then
Found = True
Exit For
End If
Next
If Found = False Then
Set SheetTY = Worksheets("土井")
SheetTY.Copy Before:=SheetTY
ActiveSheet.Name = SNameTY
End If
'去年のシート削除Dim Sheet3 As Worksheet Dim SName3 As String Dim kyonen As Integer
kyonen = Year(Date) - 1
SName3 = ("土井" & kyonen)
Application.DisplayAlerts = False
For Each Sheet3 In Worksheets
If InStr(Sheet3.Name, SName3) <> 0 Then
Sheet3.Delete
End If
Next
2008-04-06 22:48の質問
この質問と回答を読んで役に立った場合は「役に立つ質問」に投票してください。投票が多い質問は、役に立つ質問一覧に掲載され、より多くの人に見てもらうことができます。
Ads By Google
回答(1)
1.
2008-04-07 00:41:55

一応、毎年順繰りに実施すればうまくいくように思います。
危うい所としては、
Found は、検索処理をする前にfalse に設定し直さないと意味がない所かな。
テストで日付をアップするところで何かミスをしているのでは?
危うい所としては、
Found は、検索処理をする前にfalse に設定し直さないと意味がない所かな。
テストで日付をアップするところで何かミスをしているのでは?
自信度 : 自信なし 回答レベル : アドバイス
Ads By Google
コメント
まだコメントがありません



