AW: Zellen unterhalb markierter zelle markieren
13.12.2016 17:04:29
Michael
Hi,
zunächst mal der Timer: start wird nicht zugewiesen, ist nach dem Dim also 0.0; timer ist außerdem ein single, kein double.
Also:
Dim start As Single
start = Timer
sonst wird nur der aktuelle Timer-Wert ausgegeben, nicht die Differenz.
Die Zeile If c Like str Then Set Bereich = c ist etwas seltsam: ob .find ganze oder Teilbegriffe finden soll, läßt sich als Parameter mit einstellen, nach dem lookin dann noch: LookAt:=xlPart oder xlWhole. Von der Logik her fehlt hier noch ein "Else": was soll denn passieren, wenn das c Like str nicht zutrifft? Wenn überhaupt, dann gehört diese Zeile unter das if not c is nothing, sonst bricht das Makro ab, falls gar kein Treffer vorhanden ist.
Die eigentliche Frage ist etwas unklar, ohne die Tabelle zu kennen. Handelt es sich um mehrfach vorkommende Spaltenüberschriften?
Schöne Grüße,
Michael
P.S.: Versuch mal das hier:
Option Explicit
Sub test()
Dim c As Range, d As Range
Dim firstAddress
Dim str
Dim Bereich As Range
Dim start As Single
start = Timer
str = "Menge"
With Worksheets("Page 1").Cells
Set c = .Find(str, LookIn:=xlValues, lookat:=xlPart)
If Not c Is Nothing Then
' Set Bereich = Range(c, c.End(xlDown))
' oder ist eher das erwünscht?
Set Bereich = Range(c.Offset(1), c.End(xlDown))
firstAddress = c.Address
Do
Set c = .FindNext(c)
' Set Bereich = Union(Range(c, c.End(xlDown)), Bereich)
' oder das?
Set Bereich = Union(Range(c.Offset(1), c.End(xlDown)), Bereich)
Loop While Not c Is Nothing And c.Address firstAddress
End If
End With
If Not Bereich Is Nothing Then Bereich.Select Else MsgBox "nicht gefunden"
Debug.Print Timer - start
End Sub