Microsoft Excel

Herbers Excel/VBA-Archiv

bestimmten Wert per Set?


Betrifft: bestimmten Wert per Set? von: Peter
Geschrieben am: 20.09.2019 16:26:00

Hallo,

ich habe in einem code mehrmals die Zeile:

a = .UsedRange.Column + .UsedRange.Columns.Count - 1

Deklariert mit Dim a .

Ist es möglich für diese Anweisung Set a = zu setzen?

Besten Dank für eure Hilfe.

Gruss
Peter

N.S.
bei meinen letzten Anfragen funktionierte die Einstellung " Bei Antworten Email-Info nicht. Haken gesetzt. Kennt ihr das Problem?

  

Betrifft: zu N.S.-nein .... von: 1714131.html
Geschrieben am: 20.09.2019 16:31:50

...

  

Betrifft: AW: bestimmten Wert per Set? von: 1714134.html
Geschrieben am: 20.09.2019 16:38:15

Hi
mit SET weist man immer Objekte zu (z.B. ein RANGE-Objekt für Zellen)
du berechnest hier aber eine Zahl, deswegen die Zuweisung ohne spezielle Anweisung für normale Wertzuweisungen (Zahl, Text, Wahrheitswert).

wenn du a als Zellbereich die letzte Spalte zuweisen willst, dann mit SET, weils dann ein Range-Objekt ist:

Set a = .UsedRange.Columns(.UsedRange.Columns.count)
Gruß Daniel
  

Betrifft: AW: bestimmten Wert per Set? von: 1714137.html
Geschrieben am: 20.09.2019 16:53:03

Hallo Daniel,

ich möchte die letzte beschriebene Zelle in Zeile1 anweisen.

Gruss
Peter

  

Betrifft: AW: bestimmten Wert per Set? von: 1714140.html
Geschrieben am: 20.09.2019 17:03:28

HI
die bekommst du besser mit

set a = .Cells(1, .columns.count).end(xltoleft)
die UsedRange ist hier aus zwei Gründen suboptimal:
1. berücksichtigt die Usedrange alle Zeilen und nicht nur Zeile 1
2. berücksichtigt die Usedrange nicht nur beschriebene Zellen, sondern falls vorhanden auch leere Zellen mit einer individuellen Formatierung (dh nicht als ganze Zeile oder Spalte formatiert).

Gruß Daniel
  

Betrifft: AW: bestimmten Wert per Set - erledigt von: 1714147.html
Geschrieben am: 20.09.2019 17:30:53

Hallo Daniel,

besten Dank für Deine Hilfe.

die von Dir erstellte Zeile ergibt den Wert der Zelle.
Da ich aber die Spaltenbezeichnung benötige habe ich "Sp = Split(a.Address, "$")(1)" eingefügt.

Mittels .Cells(2, Sp).Select(jedoch ohne select) kann ich die Zelle ansteuern ohne, dass ich ca.
10 mal die Zeile einfügen muss.

Gruss
Peter

  

Betrifft: AW: bestimmten Wert per Set - erledigt von: 1714151.html
Geschrieben am: 20.09.2019 17:41:24

Hi
naja, lies dir deine Frage noch mal genau durch und überlege dir, wie präzise du deine Anforderung beschrieben hast !
auch Excelexperten können nicht hellsehen, auch wenn manche Fragesteller das glauben oder hoffen.

ansonsten, du brauchst hier nicht den Spaltenbuchstaben, sondern Cells kann auch die Spaltennummer verarbeiten.

dh es funktioniert auch

a = Cells(1, columns.Count).end(xltoleft).column
Cells(2, a).select

was wesentlich einfacher ist als dein Umweg über die Zelladresse

Gruß Daniel
  

Betrifft: AW: bestimmten Wert per Set - erledigt von: 1714152.html
Geschrieben am: 20.09.2019 17:52:41

Hallo Peter,

in Ergänzung zu Daniels Antwort:

Auch mit a als Range-Object brauchst du dich nicht so zu verbiegen.

Set a = Cells(1, Columns.Count).End(xlToLeft)
Cells(2, a.Column).Select
Gruß Werner

Beiträge aus dem Excel-Forum zum Thema "bestimmten Wert per Set?"