Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  Excel
  Excel VBA: Cells(Z, S) vs Range(SZ) bzw.Range(S1Z1:S2Z2) vs [SZ] bzw.[S1Z1:S2Z2]

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
Autor Thema:  Excel VBA: Cells(Z, S) vs Range(SZ) bzw.Range(S1Z1:S2Z2) vs [SZ] bzw.[S1Z1:S2Z2] (205 / mal gelesen)
ArCADe-Spieler
Mitglied
Metallbautechniker


Sehen Sie sich das Profil von ArCADe-Spieler an!   Senden Sie eine Private Message an ArCADe-Spieler  Schreiben Sie einen Gästebucheintrag für ArCADe-Spieler

Beiträge: 315
Registriert: 05.12.2012

Win 10 64bit
Office 365 aber Excel 2019

erstellt am: 16. Jan. 2024 09:50    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo Gemeinde,

gleich vorab: mangels einer Idee, wonach ich suchen sollte bzw. einem kurzen, prägnanten Suchstring, habe ich weder die Forums-Suche noch Google/Startpage zu diesem Thema bemüht ... es ist also sinnlos mir das zu "empfehlen", wenn nicht ein verwendbarer Suchstring mitgeliefert wird 

Zell- bzw. Bereichsbezüge können - meines Wissens - auf drei unterschiedliche Arten geschrieben werden:
1. Cells(Zeile, Spalte) bzw. Range(Cells(Zeile1, Spalte1):Cells(Zeile2, Spalte2))
2. Range("SpalteZeile") bzw. Range("Spalte1Zeile1:Spalte2Zeile2")
3. [SpalteZeile] bzw. [Spalte1Zeile1:Spalte2Zeile2]

Und eigentlich(!) sollten diese drei Schreibweisen - wieder nur meines Wissens - gleichwertig sein / verwendet werden können.

In der letzten Zeit habe ich - wegen der deutlich kürzeren Schreibweise - vermehrt die letzte Variante verwendet, und nun habe ich den Eindruck, dass dadurch manchmal(!!!) die Abarbeitung extrem ausgebremst wird, bis hin zum völligen Einfrieren oder sogar dem Absturz von Excel. Manchmal funktioniert es jedoch auch einfach und flott.

Hat jemand Infos dazu? Oder einen Tipp, wo bzw. wonach man suchen sollte? Oder ob es bestimmte Verfahren gibt, bei denen diese Kurzschreibweise explizit nicht verwendet werden darf / sollte?

Bin für jeden Hinweis dankbar.

Grüße
Gernot

[Diese Nachricht wurde von ArCADe-Spieler am 16. Jan. 2024 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

KlaK
Ehrenmitglied V.I.P. h.c.
Dipl. Ing. Vermessung, CAD- und Netz-Admin



Sehen Sie sich das Profil von KlaK an!   Senden Sie eine Private Message an KlaK  Schreiben Sie einen Gästebucheintrag für KlaK

Beiträge: 2740
Registriert: 02.05.2006

Office 2010; Office365
Visual Basic

erstellt am: 16. Jan. 2024 10:23    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für ArCADe-Spieler 10 Unities + Antwort hilfreich

Hallo Gernot,

Eigentlich sollten die verschiedenen Zellbezüge gleichwertig sein, wobei ich eigentlich nie die von dir bevorzugte Kurzschreibweise benutzt habe.
Du bist Dir sicher dass es hier nicht an anderen Ursachen liegen kann? Nicht geöffnete Arbeitsmappen, Zugriff auf bestimmte Pfade, fehlerhafte Formeln.
Gerade bei VBA ist ja ein häufiger Fehler, dass mit "On Error Resume Next" nicht absehbare Fehler entstehen können (z.B. bei Division durch Null oder fehlenden Bezügen).

Zur Suchabfrage: Probiere es mal mit excel vba Zellenbezug langsam, da gibt es ein paar nette Artikel.

Grüße
Klaus  

[Diese Nachricht wurde von KlaK am 16. Jan. 2024 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

ArCADe-Spieler
Mitglied
Metallbautechniker


Sehen Sie sich das Profil von ArCADe-Spieler an!   Senden Sie eine Private Message an ArCADe-Spieler  Schreiben Sie einen Gästebucheintrag für ArCADe-Spieler

Beiträge: 315
Registriert: 05.12.2012

Win 10 64bit
Office 365 aber Excel 2019

erstellt am: 16. Jan. 2024 11:51    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo Klaus,

von all den von Dir aufgeführten Fehlerquellen kämen tatsächlich nur die fehlerhaften Formeln in Frage, da ich das geöffnet-sein der einzigen anderen notwendigen Mappe bereits beim Öffnen der aktuell betroffenen Mappe per Makro sicherstelle und sonst auf keine anderen Dateien zugreife.

Fehlerbekämpfung à la "On Error Resume Next" ist mir ein Graus, weil man da halt keinerlei Rückmeldung über den tatsächlich aufgetretenen Fehler erhält, sondern einfach mit den fehlerbehafteten Daten weitergewurschtelt wird.

Ich versuche daher immer alle denkbaren Fehler direkt und benannt abzufangen ... oder andernfalls wirklich anzuhalten.

Wie gesagt: das "nur langsame" Abarbeiten der einzelnen Makros, die ich (teilweise) auf diese Kurzschreibweise umgestellt habe, ist noch die harmlose Variante.

Und was mich schier verzweifeln lässt: öffne ich nach einem Einfrieren+Kill per Taskmanager oder dem komplett-Absturz von Excel genau die selben beiden Dateien (nicht etwa die automatischen Sicherungsdateien), funktioniert es meistens problemlos und flott.

Gestern hatte ich tatsächlich zum ersten Mal eine Excel-Fehlermeldung 1004 mit anschließendem Debugging-Angebot, das mich auf eine Zeile mit zwei solchen Kurzschreibweisen geführt hat ... inzwischen habe ich diese Zeile (und etliche andere auch) wieder auf Cells(...) zurückgeändert und es funktioniert - zumindest dort - wieder völlig problemlos.

Vergleiche ich allerdings ältere, funktionierende Versionen dieser Dateien, die komplett in Cells- oder langer Range-Schreibweise geschrieben sind, wirklich Zeile für Zeile mit der aktuellen Version mit (teilweiser) Verwendung der Kurzschreibweise, sind die Formeln - bis auf die Zellbezugs-Schreibweise - gleich.

Wahrscheinlich werde ich doch alles wieder auf die alte, lange Schreibweise zurückändern - bessere Übersicht über den Prorammcode nützt mir letztendlich gar nichts, wenn das Programm dadurch fehleranfälliger wird bzw. gar nicht mehr funktioniert.

Mittels Deines Suchstrings stoße ich zwar auf etliche durchaus interessante Seiten, von denen allerdings wirklich keine auf die Funktionalitäts- bzw. Abarbeitungs-Unterschiede der verschiedenen Schreibweisen für Zellbezüge eingeht.

Grüße
Gernot

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

KlaK
Ehrenmitglied V.I.P. h.c.
Dipl. Ing. Vermessung, CAD- und Netz-Admin



Sehen Sie sich das Profil von KlaK an!   Senden Sie eine Private Message an KlaK  Schreiben Sie einen Gästebucheintrag für KlaK

Beiträge: 2740
Registriert: 02.05.2006

Office 2010; Office365
Visual Basic

erstellt am: 16. Jan. 2024 13:31    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für ArCADe-Spieler 10 Unities + Antwort hilfreich

Hallo Gernot,

Ja, ist schwierig solche Fehler nachzuvollziehen wenn sie bei einem selber noch nicht aufgetaucht sind.

Was mir noch aufgefallen ist, Du hast bei Systeminfo "Office 365 aber Excel 2019", gibt es dafür einen Grund?
Bei einigen PC haben wir auch beides, Office 365 und Office 2010 installiert da wir uns für Angestellte, die nur selten im Büro sind und kein Teams benötigen, das monatliche Geld sparen. Gelegentlich gibt es hier auch Probleme bei Excelmakros, die auf reinen M365-PCs nie vorkommen.

Grüße
Klaus 

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

ArCADe-Spieler
Mitglied
Metallbautechniker


Sehen Sie sich das Profil von ArCADe-Spieler an!   Senden Sie eine Private Message an ArCADe-Spieler  Schreiben Sie einen Gästebucheintrag für ArCADe-Spieler

Beiträge: 315
Registriert: 05.12.2012

Win 10 64bit
Office 365 aber Excel 2019

erstellt am: 16. Jan. 2024 14:16    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo Klaus,

zum Thema MS Office 365 + Excel 2019 muss ich erst einmal in unserer IT-Abteilung nachbohren ... und weiß tatsächlich nicht, warum diese Installationskombi gewählt wurde.

Mit Deinem Suchstring fand ich dies: Warum reagiert mein Excel-Makro so langsam, wenn think-cell aktiviert ist?, was für mich erneut - auch wenn es sich eben nicht mit der unterschiedlichen Zellbezugs-Schreibweise befasst - darauf hinweist, dass Select in VBA-Programmen tunlichst vermieden werden sollte ... allerdings hilft mir das dort gegebene Beispiel bei meinen Verwendungen von Select nicht wirklich weiter ... z.B. hier.

Mit dem Suchstring "Excel VBA Unterschied Cells(Z,S) und [SZ]" bin ich hierüber gestolpert: Range vs. Cells | HERBERS Excel Forum, woraus ich den Schluss ziehe, aus z.B. Range("A1").Select zumindest Cells(1,1).Select zu machen ... alles hilft ... und wenn ich mit den Infos von der Seite dann noch bedenke, dass [A1].Select Excel-intern wahrscheinlich erst zur Range-Schreibweise und dann erst als Cells interpretiert werden muss ... hm, so langsam verstehe ich bei den Unmengen an Zellzugriffen, dass die Makros dadurch immer langsamer wurden.

Grüße
Gernot

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

KlaK
Ehrenmitglied V.I.P. h.c.
Dipl. Ing. Vermessung, CAD- und Netz-Admin



Sehen Sie sich das Profil von KlaK an!   Senden Sie eine Private Message an KlaK  Schreiben Sie einen Gästebucheintrag für KlaK

Beiträge: 2740
Registriert: 02.05.2006

Office 2010; Office365
Visual Basic

erstellt am: 16. Jan. 2024 16:02    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für ArCADe-Spieler 10 Unities + Antwort hilfreich

Hallo Gernot,

Interessante Links, war mir gar nicht bewußt dass [A1] und Range("A1") auch intern zu cells(1,1) umgeformt werden.
Da verwende ich ja unbewußt immer das schnellste Format (cells). Hatte Dir ja schon mal geschrieben, das ich select eigentlich nie verwende. Warum das in Deinem Programm nicht funktioniert hat ist mir immer noch schleierhaft.

Grüße
Klaus 

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2024 CAD.de | Impressum | Datenschutz