' dieses Unterseeboot class= " muss in die Codescheibe für das Kalenderarbeitsblatt angebracht werden. Es funktioniert nicht an allen, wenn es irgendwoanders angebracht wird.
Privates VorWorksheet_Activate ()
Schwaches WS als Arbeitsblatt, wsCalendar als Arbeitsblatt
Schwaches rg als Strecke, rgDest als Strecke
Schwaches n als lang
'Application.ScreenUpdating = falsch
Gesetztes wsCalendar = Arbeitsblätter („Kalender“)
wsCalendar.Range („a2“, „f10000“). Freier Raum
'wsCalendar.Rows (2).Resize (wsCalendar.Rows.Count - 1).ClearContents
'wsCalendar.Rows.ClearContents
Für jedes WS in ThisWorkbook.Worksheets
Fall WS vorwählen. Name
„Kalender“ umkleiden, „Haupt“, „Funktions-Raum“ 'ignorieren diese Arbeitsblätter
Sonst umkleiden
Mit WS
'WS. Aktivieren
Rg einstellen =. Strecke („B4“). Die Größe neu bestimmen (.UsedRange.Rows.Count, 5) 'Blick auf Spalten B: F, beginnend in Reihe 4
Wenn (nicht ist zu schneiden (rg, .UsedRange) nichts) und (rg. Zellen (2, 1) <> "") dann
'rg.AutoFilter Feld: =2, Criteria1: = " <= " u. (Datum + 5), Operator: =xlAnd, Criteria2: = " >= " u. (Datum - 5)
'sein muss US-Datumformat
heute = Format (Datum, „MillimeterdD-yyyy“)
rg.AutoFilter Feld: =2, Criteria1: = " >= " u. heute ', Operator: =xlAnd, Criteria2: = " >= " u. plus5days
Gesetztes rgDest = wsCalendar.Cells (wsCalendar.UsedRange.Rows.Count + wsCalendar.UsedRange.Row, 2)
.AutoFilter.Range.Copy rgDest
n = wsCalendar.UsedRange.Rows.Count + wsCalendar.UsedRange.Row - rgDest.Row
rgDest.Offset (0, -1). Die Größe neu bestimmen (n, 1).Value = WS. Name
rgDest.Rows (1).EntireRow.Delete
. Strecke („B4“) .AutoFilter
Beenden wenn
Mit beenden
Auserwähltes beenden
Zunächst
Application.ScreenUpdating = richten aus
Enden-Unterseeboot
|