Ich spiele mit dem folgenden Codebeispiel herum.Wie kann ich die Breite bestimmter Spalten einstellen?
Sub Hide_Columns_Containing_Value()
Dim c As Range
Dim ThisIsToday As Date
Dim TwoWeeksBack As Date
Dim ThreeMonthsAhead As Date
ThisIsToday = Date
TwoWeeksBack = ThisIsToday - 14
ThreeMonthsAhead = ThisIsToday + 100
For Each c In Range("O4:XA4").Cells
If c.Value < TwoWeeksBack Or c.Value > ThreeMonthsAhead Then
Range(c.Address).Select
Selection.ColumnWidth = 1.75
Else
c.EntireColumn.Hidden = True
End If
Next c
End Sub
Grundsätzlich möchte ich durch alle Zellen in einer Schleife, und wenn der Wert ein Datum als zwei weniger sucht vor, oder mehr als 3 Monate ab jetzt, möchte ich die Spalte verstecken. Das Problem ist, dass die Daten nicht in jeder Zelle sind; Die Daten sind in jeder 7 Zellen, die jeden Freitag darstellen. Das Verstecken und Anzeigen von Spalten funktioniert nicht so, wie ich es möchte, wegen all der leeren Zellen.
Hier ist ein Screenshot der Daten.
[Wie vermeidet man die Verwendung von Select in Excel VBA-Makros] (https://Stackoverflow.com/q/10714251/1188513) –
Fügen Sie ein Flag hinzu und ändern Sie es basierend auf dem Datum. Verwenden Sie dieses Flag, um Spalten ein-/auszublenden. – vacip