Thema Datum  Von Nutzer Rating
Antwort
03.09.2014 10:06:10 Dimitrij.P
NotSolved
Blau ActiveSheet.Range(Cells(), Cells()).Select gibt eine Fehlermeldung aus
03.09.2014 17:39:18 Gast11669
NotSolved

Ansicht des Beitrags:
Von:
Gast11669
Datum:
03.09.2014 17:39:18
Views:
575
Rating: Antwort:
  Ja
Thema:
ActiveSheet.Range(Cells(), Cells()).Select gibt eine Fehlermeldung aus

Altbekannter Fehler, welcher bei Anfängern oft auftritt. ;)

 

Das Problem ist, dass der Code, je nach dem an welcher Stelle er im Projekt steht, mitunter funktionieren oder nicht funktionieren wird. Das liegt ganz einfach an folgendem Verhalten.

Range(Cells(x, 3), Cells(x + 10, 3))

Steht diese Zeile innerhalb einer Tabelle, dann bezieht sich sowohl Range als auch Cells auf diese eine Tabelle.

Steht diese Zeile innerhalb eines Moduls, dann bezieht sich sowohl Range als auch Cells auf die aktive Tabelle.

 

Schreibt man jetzt ...

ActiveSheet.Range(Cells(x, 3), Cells(x + 10, 3))

... und legt diesen Code in einer Tabelle ab, dann knirscht es immer dann, wenn die aktive Tabelle nicht die Tabelle ist, in der dieser Codeschnipsel befindet.

Konkreter: Die obige Codezeile liegt in "Tabelle1" (hierauf bezieht sich also Cells()) und die aktive Tabelle ist "Tabelle2".

Es wird hier also nun versucht einen zusammenhängenden Bereich über zwei Tabellen hinweg zu refrenzieren und das ist natürlich nicht möglich - Tabellenblätter und ihr Bereiche sind nun mal getrennt voneinander.

 

Und das bringt uns auch schon auf eine der wichtigsten Grundregeln beim programmieren:

Schreib immer das was du auch meinst vollständig (!!) aus (bzw. nutze Variablen).

 

Also:

With ActiveSheet
  .Range(.Cells(x, 3), .Cells(x + 10, 3)).Copy
End With

(beachte die Punkte vor Range() und Cells())

 

PS: Du scheinst den Code 1:1 vom Makrorekorder übernommen zu haben? Ein Tipp: Der Makrorekorder gibt nur einen ungefähren Ansatz zur Problemlösung. Was er ausspuckt ist immer zu überarbeiten (ganz konkret sind damit Zeilen mit Select / Activate und Selection gemeint).

 

Gruß


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
03.09.2014 10:06:10 Dimitrij.P
NotSolved
Blau ActiveSheet.Range(Cells(), Cells()).Select gibt eine Fehlermeldung aus
03.09.2014 17:39:18 Gast11669
NotSolved