Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
872to876
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
872to876
872to876
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

was ist besser cells(1,1) oder cells(1,1).value

was ist besser cells(1,1) oder cells(1,1).value
01.06.2007 14:47:02
asterix80
hi,
ich hab mal ne allgemeine frage. ich schreibe mein code fast immer so das ich wenn ich zellen anspreche nicht cells(1,1).value benutze sonder immer nur cells(1,1)
kann mir jemand verraten ob es irgendwelche vor-/nachteile geben kann. mir fallen keine ein. bis jetzt funktioniert auch alles gleichgut.
was ist eure meinung dazu?
gruß
asterix

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: was ist besser cells(1,1) oder cells(1,1).value
01.06.2007 14:55:59
Rudi
Hallo,
.value ist die Standardeigenschaft und kann entfallen.
Lasse für weitere Meinungen offen.
Gruß
Rudi
Eine Kuh macht Muh, viele Kühe machen Mühe

AW: was ist besser cells(1,1) oder cells(1,1).valu
01.06.2007 14:58:00
Tom
hi,
value ist die default-Eigenschaft von Cells.
Wenn du also nur Cells(1,1) schreibst, versteht die VBE automatisch die Eigenschaft ".Value".
Alle anderen Eigenschaften, die du auswerten willst, musst du entsprechend hinte dem "." angeben.
Gruß Tom

AW: was ist besser cells(1,1) oder cells(1,1).value
01.06.2007 15:02:40
Oberschlumpf
Hi Realnamenloser
Ich bin mir nicht sicher, aber ich denke, dass du auch ohne den Zusatz .Value weiter programmieren kannst, da dieser Zusatz als Standard gilt - auch bei Range("Zelle")
Ich "hänge" das .Value immer brav mit dran, weil mit .Value angefangen habe und es nun drin ist.
Da ich aber nicht sicher, was hier ich schreibe :-), lass ich den Thread noch mal offen.
Ciao
Thorsten

Anzeige
ist wohl alles dazu gesagt - o.T.
01.06.2007 15:39:48
Matthias
zum Schließen des Threads

geschlossen - o.T.
01.06.2007 15:40:00
Matthias
-

AW: Gestatte noch ein Wort, @Matthias G
01.06.2007 17:32:00
ingUR
... denn die im Raum schwebende Frage nach dem Geschwindigkeitsunterschied zwischen den Versionen soll nicht unbeantwortet bleiben (bitte Fragestellung nicht allzu ernst nehmen):


The winner is
Cells(1,1) = 1



Cells(1,1) = 1 wird schneller ausgeführt als Cells(1,1).Value = 1
Die "schnellere" Version Cells(1,1)=1 bringt bei 100.000 Läufen 2,72% Zeitersparnis gegenüber der "langsameren" Version Cells(1,1).Value=1, was wohl daran liegt, dass wenn die Eigenschaft fehlt, auf die Untersuchung, welche Eigenschaft gefragt ist, verzichtet werden kann, da Value sofort unterstellt wird.
Auf dem Gerät, auf dem ich dieses Test duchgeführt haben, werden für die Zuweisung mit der Standardschreibweise bei 100.000 Läufen 21250 msec benötigt, während bei der "längere" Version 21902 msec gestoppt werden.
Hier der Programmcode, mit dem in einer leeren Arbeitsmappe gestestet wurde:

Option Explicit
Dim starttime As Long, Wartezeit As Date
Declare Sub sleep Lib "kernel32" (ByVal dwMSecs As Long)
Private Declare Function timeGetTime Lib "winmm.dll" () As Long
Sub Testen()
Dim i As Long, nLoops As Long, n As Long, r As Long
Dim time0 As Long, time1 As Long, time2 As Long
For nLoops = 10000 To 100000 Step 10000
Application.ScreenUpdating = False
r = r + 1
n = nLoops
'Teste Zeitbedarf der Schleife
time0 = timeGetTime
For i = 1 To n
Next i
time0 = timeGetTime - time0
time1 = timeGetTime
For i = 1 To n
Cells(1, 1) = 1
Next i
time1 = timeGetTime - time1 - time0
time2 = timeGetTime
For i = 1 To n
Cells(1, 1).Value = 1
Next i
time2 = timeGetTime - time2 - time0
Cells(r + 1, 2) = n
Cells(r + 1, 3) = time1
Cells(r + 1, 4) = time2
Cells(r + 1, 5) = time1 / n
Cells(r + 1, 6) = time2 / n
Cells(1, "H") = Application.WorksheetFunction.Average(Range("E2:E" & r))
Cells(1, "I") = Application.WorksheetFunction.Average(Range("F2:F" & r))
Cells(1, "J") = 100 * Cells(1, "H") / Cells(1, "I")
Cells(2, "H") = Application.Max(Range("E2:E" & r))
Cells(2, "I") = Application.Max(Range("F2:F" & r))
Cells(3, "H") = Application.Min(Range("E2:E" & r))
Cells(3, "I") = Application.Min(Range("F2:F" & r))
If r > 2 Then
Cells(4, "H") = Application.WorksheetFunction.StDev(Range("E2:E" & r))
Cells(4, "I") = Application.WorksheetFunction.StDev(Range("F2:F" & r))
End If
Cells(1, "G") = n
Application.ScreenUpdating = True
Next nLoops
End Sub


Gruß,
Uwe

Anzeige
AW: Gestatte noch ein Wort, @Matthias G
01.06.2007 17:38:00
Matthias
Hi Uwe,
das ist nun mal wirklich eine gute Nachricht! Dann lass ich das .Value in Zukunft weg und spare mir das Geld für einen neuen Rechner! ;-))
Aber im Ernst, ich dachte, es sei eher andersrum, nach dem Motto "äh, keine Eigenschaft, moment, schaumer mal inner Liste... aha, beim Range-Objekt ist der Default-Wert Value, ok" -- dass dies langsamer wäre als die direkte Angabe der Eigenschaft.
Danke für die Infos.
Gruß Matthias

AW: Gestatte noch ein Wort, @Matthias G
01.06.2007 17:47:46
ingUR
Nein, Matthias,
gerade wenn .Value als Erweiterung steht, muß die "Einsprungadresse" erst aus der Liste der verfügbaren Adressen für das Objekt gesucht werden, wärend beim Fehlen derselben, direkt die Standardadresse genutzt wird; so jedenfalls meine Vermutung.
Es freut mich, dass ich zur Schonung des Inhalts Deiner Geldbörse beitragen konnte ;).
Gruß,
Uwe

Anzeige
AW: Gestatte noch ein Wort, @Matthias G
01.06.2007 17:51:00
Matthias
Hallo Uwe,
es wird wohl so sein, wie du vermutest.
Mich würde mal eine Liste aller Objekte, die eine Default-Eigenschaft haben, interessieren (und welche das ist). Gibt's sowas?
Range : Value
Textbox : Text
...
...
Gruß,
Matthias

AW: Gestatte noch ein Wort, @Matthias G
01.06.2007 18:08:00
Original
Hi,
defaults werden im Objektkatalog mit einem blauen Kreis angezeigt, leider
nicht alle.
mfg Kurt

AW: was ist besser cells(1,1) oder cells(1,1).value
01.06.2007 17:04:00
Heinz
Hi,
cells(1,1).value funktioniert garantiert, bei cells(1,1) kann Excel bei großen Mappen
schon mal den default "vergessen".
mfg Heinz

AW: was ist besser cells(1,1) oder cells(1,1).valu
01.06.2007 17:08:20
Matthias
Hallo Heinz,
das hast du wirklich schon erlebt? Wie groß war denn da die Mappe? Und was nimmt Excel dann statt "Value" als Eigenschaft?
Gruß Matthias
Anzeige

301 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige