Hatten Sie auch schon das Problem, einfach zu überprüfen, ob ein Bereich in einem Excel-Arbeitsblatt Daten enthält? Ist doch leicht: Einfach den Bereich mit einer For Each-Schleife durchlaufen und die Zellen überprüfen, in etwa so: For Each Zelle In Selection If IsEmpty(Zelle) = False Then Msgbox "Daten vorhanden" Exit For End If Next Das Problem an dieser Variante: es funktioniert und ist verdammt schnell wie ne Wanderdüne. Bei der Überprüfung große Bereiche oder gar des gesamten Arbeitsblattes dauerts richtig lange. Dass es aber auch anderes geht, zeigt uns Excel bei unzähligen Funktionen selbst. Mit folgendem Code können Sie ab sofort ebenfalls komplette Arbeitblätter in Null komma nix überprüfen. ' diese Funktion prüft, ob der angegebene ' Zellenbereich' leer ist (TRUE) oder Zellen mit ' Inhalt/Formeln enthält (FALSE) Function IsEmptyCells(CheckRange As Range) As Boolean On Error Resume Next Dim FoundCells As Range Dim EmptyCells As Boolean ' wenn kein Zellenbereich übergeben wurde, Funktion abbrechen If CheckRange Is Nothing Then IsEmptyCells = False Exit Function End If IsEmptyCells = False ' wenn nur eine Zelle markiert ist, liefert ' Selection.SpecialCells immer die erste gefundene Zelle ' aus dem gesamten Arbeitsblatt, deswegen, bei Ein-Zellen- ' Markierung den ZellWert selbst prüfen If CheckRange.Cells.Count = 1 Then ' liefert TRUE, wenn die markierte Zelle leer ist IsEmptyCells = IsEmpty(CheckRange.Value) Else ' liefert sämtliche Zellen der Markierung, die einen ' konstanten Wert enthalten Set FoundCells = CheckRange.SpecialCells(xlCellTypeConstants) ' gibt es in der Markierung keine Zellen mit konstanten ' Inhalt, dann prüfen, ob Formeln vorhanden sind If Error <> "" Then ' Fehlerbehandlung zurücksetzen On Error Resume Next Set FoundCells = CheckRange.SpecialCells(xlCellTypeFormulas) ' liefert TRUE, wenn in der Markierung keine Zellen ' mit Formeln vorhanden sind IsEmptyCells = (Error <> "") End If End If End Function Dieser Tipp wurde bereits 53.472 mal aufgerufen. Voriger Tipp | Zufälliger Tipp | Nächster Tipp
Anzeige
Diesen und auch alle anderen Tipps & Tricks finden Sie auch auf unserer aktuellen vb@rchiv Vol.6 Ein absolutes Muss - Geballtes Wissen aus mehr als 8 Jahren vb@rchiv! - nahezu alle Tipps & Tricks und Workshops mit Beispielprojekten - Symbol-Galerie mit mehr als 3.200 Icons im modernen Look Weitere Infos - 4 Entwickler-Vollversionen (u.a. sevFTP für .NET), Online-Update-Funktion u.v.m. |
sevISDN 1.0 Überwachung aller eingehender Anrufe! Die DLL erkennt alle über die CAPI-Schnittstelle eingehenden Anrufe und teilt Ihnen sogar mit, aus welchem Ortsbereich der Anruf stammt. Weitere Highlights: Online-Rufident, Erkennung der Anrufbehandlung u.v.m. Tipp des Monats Mai 2024 Hermann Röttger Wochentage eines Datumsbereichs ermitteln Wochentage eines Datumsbereichs ermitteln, optional mit Feiertagsberechnung sevWizard für VB5/6 Professionelle Assistenten im Handumdrehen Erstellen Sie eigene Assistenten (Wizards) im Look & Feel von Windows 2000/XP - mit allem Komfort und zwar in Windeseile :-) |
||||||||||||||||
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein. |