• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:for next 日付の土日祝日除く方法)

for next 日付の土日祝日除く方法

このQ&Aのポイント
  • マクロの中で日付管理簿のシート名を指定する際に、土日祝日を除く方法を教えてください。
  • for next文のコードを使用して、11月1日から11月30日までのシートを指定していますが、土日祝日のシートが存在しないため、エラーが発生します。
  • 土日祝日を除いた状態で変数を割り当てる方法があれば教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • nag0720
  • ベストアンサー率58% (1093/1860)
回答No.1

土日判定は簡単ですが、祝日の判定はけっこうやっかいです。 それよりは、シートが存在するときだけ処理をするようにすれば簡単です。 Dim j As Long For j = 1 To 30 Set w0 = Workbooks("大元データ.xls").Worksheets(1) On Error Resume Next Set w1 = Workbooks("日付管理簿.xls").Worksheets("11月" & j & "日")) If Err.Number = 0 Then   '処理 End If Next

samohankinpo
質問者

お礼

色々と申し訳ありません。 書いたコードの転記間違っていました nag0720様の書いていただいたコードで動きました お手数かけました ありがとうございます。

samohankinpo
質問者

補足

nag0720様 返答遅れてしまって申し訳ありません。 存在してるシートだけに処理をするという構築が参考になります。 返答頂いてコードを組み込んでみましたが 申し訳ありません。 上手く動かないのです・・・・ 11月の土祝日を除いた状態でシートは存在して全シートに確認するようにしているのですが コードの記述の仕方が変なのでしょうか? もしよろしければ 確認して頂いてもよろしいでしょうか? 以下コードになります Sub 転記() Dim w0 As Worksheet, w1 As Worksheet Dim h As Range, Target As Range Dim j As Long For j = 1 To 28 Set w0 = Workbooks("大元データ.xls").Worksheets(1) On Error Resume Next Set w1 = Workbooks("日付管理簿.xls").Worksheets("11月" & j & "日") If Err.Number = 0 Then End If Next For Each h In w0.Range("G7:G" & w0.Range("G65536").End(xlUp).Row) Set Target = w1.Cells.Find(what:=h.Value, LookIn:=xlValues, lookat:=xlWhole) If Not Target Is Nothing Then Select Case h.Offset(0, 1).Value Case "確認" Target.Offset(0, 6) = h.Offset(0, 1).Value Case Else End Select End If Next End Sub 11月1日と11月5日に確認するデータを記述してテストしてみましたが 転記されていない模様です。 お忙しい中申し訳ありません。 確認して頂いてもよろしいでしょうか?

関連するQ&A

専門家に質問してみよう