簡単な質問:私はいくつかの条件に基づいて日付のセル範囲を塗りつぶす小さなvbaスクリプトを持っています。私はこの範囲の日付を取って週末の秋を次の月曜日に置き換えたいと思っています。 Weekday
は日付ではなく、セル参照を受け入れるように設計されて、私の知る限りVBA土曜日と日曜日を次の月曜日に置き換える平日と勤務
i = 6
For i = 6 to LastRow
If Weekday(Cells(i, "I"), vbMonday) > 5 Then
Cells(i, "I") = Application.WorksheetFunction.Workday(Cells(i, "I"), 1, 1)
End If
Next i
:私はこれを(すべての変数が適切に定義されていると仮定してください)やってWeekday
とWorkday
を使用しようとしています。 forループで日付を渡す方法がわかりません。助言がありますか?
入力データの例と期待される出力を追加してください –
参照しているセルが日付を保持している場合は 'Weekday(Cells(i、" I ")。value、vbMonday)'を使用します。 'WorksheetFunction.Workday()'。また、Cells(i、 "I")= 'ではなく、' Cells(i、 "I")。value = ' - つまり明示的に結果をvalueに代入する方が良いです。 –
あなたの欠点は、2つのオプションの引数があることです。 vbMondayの前に、を追加する必要があります。 – Luuklag