Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1116to1120
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

An alle Offset-Verliebten

An alle Offset-Verliebten
Christian
Hallo Forum,
irgendwie kann ich mich dem Eindruck nicht erwehren, dass hier im Forum die Offset-Methode an Beliebtheit gewinnt. Wenn man schon Werte aus einzelnen Zellen einlesen muss, warum tritt man dann erst mal gezielt daneben um anschließend mit "Offset" das eigentliche Ziel zu treffen...?
hier zwei Beispiele, die bei mir auf allen Rechnern ca. 10% Differenz ausmachen...

Sub TestOffset()
Dim i&, t!
Cells.Clear
t = Timer
For i = 1 To 30000
Cells(i, 1).Offset(, 4) = i
Next
MsgBox Timer - t
End Sub
Sub TestNoOffset()
Dim i&, t!
Cells.Clear
t = Timer
For i = 1 To 30000
Cells(i, 5) = i
Next
MsgBox Timer - t
End Sub
Feed back ist willkommen - Gruß Christian

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: An alle Offset-Verliebten
17.11.2009 21:54:42
F1
Das Beispiel ist sinnfrei.
F1
AW: An alle Offset-Verliebten
17.11.2009 21:59:08
Christian
hi,
'ne Erkärung wäre hier ja hilfreich, F1...
Christian
AW: An alle Offset-Verliebten
17.11.2009 22:19:03
Tino
Hallo,
offset geht man um Daten von oder aus einer anderen Zelle zu bekommen.
zBsp. sucht man in Spalte A nach einem Wort und will die Daten aus Spalte B dazu.
Gruß Tino
auch schreiben in andere Zelle ist möglich. oT.
17.11.2009 22:31:55
Tino
AW: An alle Offset-Verliebten
18.11.2009 00:41:29
Daniel
Hi
mit Offset arbeitet man, wenn man eine Zelle über die FIND-Funktion, mit .End(xl...) , oder sonstwie ermittelt hat und jetzt eine Zelle bearbeiten will, die zu dieser Zelle einen bestimmten Abstand hat.
man hat zwar die Zelle, aber die genaue Position (Zeile, Spalte) ist nicht bekannt und müsste erst über die .Row oder .Column-Funktion ermittelt werden.
Da ist es dann bequemer und einfacher, die Offset-Funktion zu verwenden.
hier mal ein Beispiel, es soll zu einer Kundennummer eine neue Telefonnummer, die in der 3. Spalte rechts von der Kundennummer steht, eingetragen werden:
Cells.Find(What:="111-111").Offset(0,3).Value = "555-12345678"
ist einfacher als:
Cells(Cells.Find(what:="111-111").row, Cells.Find(what:="111-111").Column+3).Value ) = "555-12345678"
in zeitkritischen Schleifen würde ich sowieso ganz anders vorgehen.
Gruß, Daniel
Anzeige
AW: An alle Offset-Verliebten
18.11.2009 18:57:48
Christian
Hallo Daniel,
in deinem Bsp zeigst du ja, wie Offset vernünftig angewendet werden kann.
Ich hab auch nichts gegen Offset an sich, aber man sieht eben auch immer wieder Code wie z.Bsp:
Me.TextBox1 = .Cells(Zelle, 1).Offset(0, 1)
Me.TextBox2 = .Cells(Zelle, 1).Offset(0, 2)
Me.TextBox3 = .Cells(Zelle, 1).Offset(0, 3)
....
Me.TextBox13 = .Cells(Zelle, 1).Offset(0, 13)
....
Ja, ich weiß, auch hier kann nicht nur auf Offset verzichten, sondern das Thema ganz anders angehen.
Mit dem Beitrag wollte ich nur darauf hinweisen, dass man in solchen Konstellationen alleine mit Offset 10% Performance einbüßt.
Grüße
Christian
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige