Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1368to1372
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

Zelle mit Variable adresieren

Zelle mit Variable adresieren
30.06.2014 00:42:35
Toni
Hallo,
was mache ich falsch?
Dim TEST As Variant
:
TEST = Workbooks(qDateiname).Worksheets(1).Range("B14")
TEST = Workbooks(qDateiname).Worksheets(1).Range(Cells(14, 2))
Die erste Testzeile geht, in Test steht der Zellenwert
Die zweite Testzeile bring Fehler
Danke für einen kleinen Tipp

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
2.Zeile ohne Range, nur .Cells(...), ...
30.06.2014 03:57:17
Luc:-?
…Toni,
weil du ja nur eine Zelle einlesen willst. Range verwendet man so zur Angabe eines ZellBereichs, zB .Range(.Cells(14,2), .Cells(16,3)); anderenfalls ist das 1. doppelt gemoppelt und enthält 2. den (Anfänger-)Fehler, nämlich, dass sich Cells so* auf das aktive Blatt bezieht. Deshalb verwendet man in dem von mir genannten sinnvollen Fall auch eine With-Konstruktion oder setzt eine ObjektVariable für das QuellBlatt ein.
* …nämlich ohne pkt-verbundenes Bezugsblatt wie vor .Range.
Morrn, Luc :-?

Anzeige
Workbooks(qDateiname).Worksheets(1).Cells(14,2)
30.06.2014 07:54:20
MCO
o.T.
Gruß, MCO

Das hatte ich bereits im Betreff, MCO! owT
30.06.2014 15:21:00
Luc:-?
:-?

Ja. Das hast du fein gemacht....Danke f.d.Comment
01.07.2014 09:04:05
MCO
.

Ach nee, was Intelligenteres ...
02.07.2014 13:17:07
Luc:-?
…fällt dir nicht ein, MCO…?! :->>
Es war doch nicht etwa zu früh für deine Aufmerksamkeit oder du wolltest mal was beisteuern, wozu du was sagen kannst…
Der Neuigkeitswert orientierte sich doch wohl eher an „Herr Lehrer, ich weiß auch was!“, während Daniel demggüber noch einen anderen Aspekt eingebracht hat… ;-]
Luc :-?

AW: Zelle mit Variable adresieren
30.06.2014 08:18:37
Daniel
Hi
Die Range-Funktion hat zwei Varianten:
a) ein Parameter
Dann muss dieser Parameter die Adresse des Zellbereichs in A1-Schreibweise sein
b) zwei Parameter
Dann müssen diese Parameter ebenfalls zwei Ranges oder Cells sein, welch die diagonal gegenüberliegenden Ecken der Range definieren
TEST = Workbooks(qDateiname).Worksheets(1).Range(Cells(14, 2))

Ist nun Fall a), deswegen übergibt du hier nicht den Wert der Zelle B14, sondern den Wert dejenigen Zelle, deren Adresse als Text in B14 steht.
Zum Fehler kommt es wahrscheinlich, weil in B14 eben keine Zelladresse steht.
Wenn man nur eine Zelle ansprechen will, dann braucht man nicht unbedingt Range, dann kann man auch direkt Celle verwenden.
TEST = Workbooks(qDateiname).Worksheets(1).Cells(14, 2)
Gruß Daniel

Anzeige
Nun gut, du hast das noch weiter ausgebaut, ...
30.06.2014 15:42:00
Luc:-?
…Daniel,
denn es ist tatsächlich so, dass im Fall a) mit nur einem Parameter Range erwartet, dass dieser eine Zell­Adresse in TextForm darstellt. Da das hier nicht der Fall ist, kommt's zum Fehler. Allerdings hat er das als Anfänger höchst­wahr­scheinlich auch gar nicht gemeint, son­dern ihm waren 1. die Unter­schiede zwischen a) und b) nicht klar und 2. hat er, was ein typischer Fehler wäre, die Referen­zierung von Cells vergessen. Ich vermute ja, es sollte dabei eher ein …
With Workbooks(qDateiname).Worksheets(1): TEST = .Range(.Cells(14, 2), .Cells(14, 2)): End With
…heraus­kommen, weniger das, was er tat­sächlich geschrieben hat und quasi, so wie du es meinst, ein …Range(ActiveSheet.Cells(14, 2).Value), um das mal ganz auszu­schreiben, heraus­gekommen ist. Insofern wäre das eine Art DoppelFehler, das Eine meinen, aber doppelt unrichtig umsetzen und dabei in die Falle einer alterna­tiven Möglich­keit tappen (wodurch also auch kein Syntax­Fehler entsteht), die nicht ziel­führend sein kann, weil nicht gemeint und deshalb auch gar nicht in Betracht gezogen.
Gruß, Luc :-?

Anzeige
AW: Danke an euch Profis, ...
30.06.2014 20:39:33
Toni
TEST = Workbooks(qDateiname).Worksheets(1).Cells(14, 2)
das funktioniert (was sonst)- Danke.
Habe letzte Woche grad meinen Basic 3 Tage Basic Kurs gemacht. Insofern habt ihr Richtig erkannt, dass ich VBA Anfänger bin.
PS.: Habe die Befürchtung das ich mich noch öfter nerven werde ;-(

Solange du nur DICH nervst... ;-] Gruß owT
30.06.2014 23:37:28
Luc:-?
:-?

301 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige