Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Bereichsdefinition, was ist falsch?

Bereichsdefinition, was ist falsch?
16.11.2007 16:30:00
Peter
Hallo
Ich versuche wie folgt einen Bereich zu definieren:
im Direktbereich ergibt ?[sollhaben].row die Zahl 7
Ich erhalte die Fehlermeldung: "Anwendungs- oder objektdefinierter Name)
Set Bereich = Worksheets("Import").Range(Cells([sollhaben].Row, lngAnf), Cells([sollhaben].Row, lngEnd))
Wer kann mir weiterhelfen?
Vielen Dank, Peter

Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Bereichsdefinition, was ist falsch?
16.11.2007 16:33:00
Hajo_Zi
Hallo Peter,
warum machst Du um die Variable sollhaben Eckige Klammern?
Gruß Hajo

AW: Bereichsdefinition, was ist falsch?
16.11.2007 16:53:00
Peter
Hallo Hajo
Ich habe gelernt, dass [sollhaben] die Kurzform ist von Range("sollhaben").
Diese Schreibweise ist kurz und es ist klar, dass es sich um einen benannten Range handelt.
Nun möchte ich einen neuen Bereich definieren, der sich vom bestehenden Bereich ableitet. Dies ist hier sinnvoll, da der Adresse von [sollhaben] ändert und der Bereich auch immer wieder neu festgelegt wird. Einen Fehler habe ich bereits festgestellt, nämlich, dass ich hier die Spaltennummer und nicht die Zeilennummer abfragen muss - doch technisch hätte das Festlegen auch funktionieren müssen, wenn auch der Bereich dann nicht am richtigen Ort festgelegt worden wäre.
[sollhaben].Column = 4
lngAnf = 7
lngEnd = 707
Das heisst, ich möchte mit nachstehender Codezeile den Bereich auf D7:Dd707 festlegen
Set Bereich = Worksheets("Import").Range(Cells([sollhaben].Column, lngAnf), Cells([sollhaben].Column, lngEnd))
Gruss, Peter

Anzeige
AW: Bereichsdefinition, was ist falsch?
16.11.2007 16:57:00
Hajo_Zi
Hallo Peter,
bei Cells wird erst die Zeile angegeben und dann die Spalte. Der Name bezieht sich nur auf eine Zelle?
Ich baue das Beispiel nicht nach. Ich mache jetzt erstmal Feierabend.
Gruß Hajo

Anzeige
AW: Bereichsdefinition, was ist falsch?
16.11.2007 17:11:00
Peter
Hallo Hajo
"bei Cells wird erst die Zeile angegeben und dann die Spalte" war der zündende Hinweis - ich habe nämlich als Vorlage Set Bereich = Worksheets("Import").Range("Q" & lngAnf, "Q" & lngEnd) gehabt und mich hineinlegen lassen.
Vielen Dank für deine Hilfe.
Peter

Anzeige
AW: Bereichsdefinition, was ist falsch?
17.11.2007 15:32:09
Daniel
HI

Ich habe gelernt, dass [sollhaben] die Kurzform ist von Range("sollhaben").
Diese Schreibweise ist kurz und es ist klar, dass es sich um einen benannten Range handelt.


Da hast du was nicht ganz korrektes gelern:
[] ist [xxx] die Kurzschreibweise für EVALUATE ist, was soviel bedeutet wie "Berechnen".
beispielsweise hat "[1+2]" das Ergebnis 3.
Zwar funktioniert [] als Ersatz für die RANGE- oder CELLS- Schreibweise, aber man sollte es trotzdem nicht benutzen, weils ja nicht ganz korrekt und darüber hinaus noch langsamer als die Range- oder Cells-Schreibweise.
kann man hiermit testen:
Sub test()
Dim Zeit As Double, Erg1 As Double, Erg2 As Double, Erg3 As Double
Dim Erg As String
Dim i As Long, Schleifen As Long
Schleifen = 2000
[a1].Clear
'--- Speedtest []
Zeit = Timer
For i = 1 To Schleifen
[a1] = [a1]
Next
Erg1 = Round(Timer - Zeit, 3)
'--- Speedtest Range
Zeit = Timer
For i = 1 To Schleifen
Range("a1") = Range("A1")
Next
Erg2 = Round(Timer - Zeit, 3)
'--- Speedtest cells
Zeit = Timer
For i = 1 To Schleifen
Cells(1, 1) = Cells(1, 1)
Next
Erg3 = Round(Timer - Zeit, 3)
'--- Ergebnis
Erg = "Zeit für []: "
Erg = Erg & Format(Erg1, "0.000 ") & Format(Erg1 / Erg1, "0%")
Erg = Erg & Chr(10) & "Zeit für Range: "
Erg = Erg & Format(Erg2, "0.000 ") & Format(Erg2 / Erg1, " 0%")
Erg = Erg & Chr(10) & "Zeit für Cells: "
Erg = Erg & Format(Erg3, "0.000 ") & Format(Erg3 / Erg1, " 0%")
MsgBox Erg
End Sub
Gruß, Daniel

Anzeige
AW: Bereichsdefinition, was ist falsch?
17.11.2007 21:07:00
Peter
Hallo Daniel
Sehr interessanter Beitrag!
Vielen Dank, Peter
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige