Thema Datum  Von Nutzer Rating
Antwort
14.11.2021 15:25:22 Fabienne
NotSolved
14.11.2021 19:03:31 ralf_b
*****
NotSolved
Rot ein oft gemachter Fehler
15.11.2021 00:26:00 Gast98639
*****
NotSolved
15.11.2021 09:32:14 Nobody
NotSolved
15.11.2021 20:30:20 Gast30413
NotSolved
15.11.2021 09:23:49 Nobody
NotSolved
15.11.2021 10:01:11 Nobody
NotSolved

Ansicht des Beitrags:
Von:
Gast98639
Datum:
15.11.2021 00:26:00
Views:
389
Rating: Antwort:
  Ja
Thema:
ein oft gemachter Fehler
Sheets("Sales data").Range(Cells(j, 1), Cells(j, 23)).Copy

In einem Modul stehend, kommt es dabei oft zu dem Laufzeitfehler 1004 (das ist so ein Allerwelts-Laufzeitfehler für alles mögliche).

Hier, kann es aus folgendem Grund passieren:

Schreibt man in einem Modul Range() bzw. Cells() - ohne sich dabei auf ein konkretes Tabellenblatt zu beziehen - dann wird automatisch das aktive Blatt hergenommen (was weder "Sales data" sein muss, noch muss es ein Tabellenblatt sein - Diagrammblätter gibt es nämlich auch noch). Man versucht dann also auf dem Blatt "Sales data" den Bereich des aktiven Blatts zu referenzieren - das würde bedeuten man referenziert Bereiche über Blätter hinweg; und das geht so einfach nicht.

Korrekt wäre:

  Dim wksSales As Excel.Worksheet
  
  Set wksSales = Worksheets("Sales data")
  
  wksSales.Range(wksSales.Cells(j, 1), wksSales.Cells(j, 23)).Copy

oder per With-Statement:

  With Worksheets("Sales data")
    .Range(.Cells(j, 1), .Cells(j, 23)).Copy
  End With

Beachte die Punkte vor Range() und Cells(). Damit beziehen sich diese auf das Tabellenblatt "Sales data".

 

PS: Wenn man im Code Tabellenblätter meint, sollte man Worksheets benutzen (selbsterklärender Code).

 


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
14.11.2021 15:25:22 Fabienne
NotSolved
14.11.2021 19:03:31 ralf_b
*****
NotSolved
Rot ein oft gemachter Fehler
15.11.2021 00:26:00 Gast98639
*****
NotSolved
15.11.2021 09:32:14 Nobody
NotSolved
15.11.2021 20:30:20 Gast30413
NotSolved
15.11.2021 09:23:49 Nobody
NotSolved
15.11.2021 10:01:11 Nobody
NotSolved