解決済

シートコピーで失敗をしています。どうかご教示いただけないでしょうか?
説明を箇条書きにさせていただきます。

・シート名は西暦からの取得・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の質問
VBA  copy  sheet  
この質問と回答を読んで役に立った場合は「役に立つ質問」に投票してください。投票が多い質問は、役に立つ質問一覧に掲載され、より多くの人に見てもらうことができます。
Ads By Google

回答(1)

1.

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

コメント

まだコメントがありません

トラックバック

トラックバックURL: