次のコードがあります。これは今日の+ 6日以外の日付のExcelシートのすべての結果を除外しています。 問題は、私が月曜日にそれを実行すると、私は日曜日にヒットしたということです。 結果が土曜日または日曜日でない限り、常に現在の日付に6日を追加するように変更する必要があります。その後、月曜日を意味する最初の就業日を取ることにします。現在の日付に追加するときの週末日を除外します。
Public Sub GRP_SC_Filter1()
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Dim DelDate As Long
DelDate = DateSerial(Year(Date), Month(Date), Day(Date) + 6)
LR = Sheets("Goods Receivable Planning").Range("A" & Rows.Count).End(xlUp).Row
Cells.AutoFilter Field:=13, Criteria1:="<>" & DelDate
ALR = ActiveSheet.Range("A" & Rows.Count).End(xlUp).Row
If ALR > 2 Then
Range("A2:A" & LR).SpecialCells(xlCellTypeVisible).Select
Range("A2:A" & LR).Delete
Range("A1").Activate
End If
Cells.AutoFilter
' MsgBox "Finished deleting rows"
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub
私が必要とするものに変身させることができれば、本当にありがとうと思います。私は正直に立ち往生しています。前もって感謝します!
あなたは 'にして外観を持っていたことがあります= NetworkDays() 'ワークシート関数?これにより、2つの日付間の作業日数が計算され、必要なものを達成するのに役立ちます。 – Calico
週末が「土、日」の場合は、Excelの関数「WORKDAY」を使用できます。それ以外の場合は、 'WORKDAY.INTL'を使用して週末の日を定義してください。どちらもVBAでは 'WorksheetFunction'オブジェクトのメンバとして利用できます。 –