Anzeige
Archiv - Navigation
924to928
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
924to928
924to928
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

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

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

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

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige