Archiv
Ansicht:   
Suche   erweiterte Suche

Nachricht aus dem Archiv

neanderix schrieb am 22.August.2015, 22:31:06 in der Kategorie pc.sw.office

VBA Fehler im Makro

> der 1004er Fehler ist so aussagekräftig, wie die Aussage Heute ist
> Mittwoch.
>
> Gibt's in dem Excel einen Blatt- oder Mappenschutz?
>
> Bei mir läuft das Makro fehlerfrei. Wobei man das auf Selection umbauen
> sollte.

Ich reagiere auf "Select" und "Activate" recht allergisch, die sollten bei der Programmierung tabu sein - sie sind, wenn man alles richtig macht, auch in etwa 99% aller Fälle völlig überflüssig und brauchen nur unnötig Zeit.

Statt
Select(Zellbereich)
Selcetion.Cells.Replace...

Kannst du auch
Range(Zellbereich).Cells.Replace...

schreiben.
Oder den Zellbereich einer Variablen zuweisen:
Dim MyCells As Range
Set MyCells=Range(Zellbereich)

MyCells.Cells.Replace .....

Das ist deutlich besser lesbar, als Select... Activate usw.

Selection brauchst du nur, wenn deine Routine (ich weigere mich, VBA-Routinen "Makro" zu nennen!) einen vom Benutzer markierten Bereich behandeln soll und selbst da ist es nicht zwingend nötig, der Bereich lässt sich einlesen und dann z.B. mit mder von mir zuletzt genannten Variante bearbeiten.

"Select", "Activate" und "Selection" benötigen nicht nur unnötig Zeit - ihr Einsatz setz zudem voraus dass du sicherstellen kannst, dass zum Zeitpunkt ihres Aufrufes auch genau das richtige Blatt aktiv ist.
Ist es das nicht, kannst du üble Überraschungen erleben -- ich verzichte deshalb auf diese drei, wo es nur geht, im Gegensatz zu einem Arbeitskollegen, dessen Code davon nur so strotzt (er weigert sich standhaft, die von mir genannten methoden einzusetzen :( - ansonsten, dass muss ich zu geben, kennt er sich in Excel deutlich besser aus, als ich)

Volker
Archiv
Ansicht:   
Suche   erweiterte Suche
Auf unserer Web-Seite werden Cookies eingesetzt, um diverse Funktionalitäten zu gewährleisten. Hier erfährst du alles zum Datenschutz