Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1804to1808
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Laufzeitfehler 1004, Anw.. beim kopieren

Laufzeitfehler 1004, Anw.. beim kopieren
11.01.2021 10:48:13
Tim
Hallo ich habe ein Problem beim kopieren einer Spalte vom Sheet zu Sheet.
Anwendungs & Objektfehler
folgendes

Sub Test ()
Dim look1 As String
Dim rng1 As Range
Dim long As Long
Dim clmn As Range
look1 = "Date"
Set rng1 = Cells.Find(look1)
If Not rng1 Is Nothing Then
long= rng1.Column   '
End If
Set clmn = Columns(long)
ThisWorkbook.Worksheets.Add.Name = "Datum"
_
_
_
clm.Copy _
Destination:=Worksheets("Datum").Range("A2")
End Sub

Laufzeitfehler 1004, Anwendungs oder objektdefinierter Fehler
Das komische ist jedoch, wenn ich mein Befehl so ausführe
Sheets("Tabelle1").Range("F1:F2000").Copy _
Destination:=Worksheets("Datum").Range("A2")
funktioniert das.
Ich wäre sehr dankbar, wenn jemand weiterhelfen kann.
LG

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Laufzeitfehler 1004, Anw.. beim kopieren
11.01.2021 10:51:51
ChrisL
Hi
Ohne den Code im Detail zu prüfen, aber was sofort auffällt: clm vs. clmn
Sowas lässt sich mit Option Explicit vermeiden.
cu
Chirs
AW: Laufzeitfehler 1004, Anw.. beim kopieren
11.01.2021 11:07:19
Tim
Hallo Chris,
Sub Test ()
Dim look1 As String
Dim rng1 As Range
Dim long As Long
Dim clmn As Range
look1 = "Date"
Set rng1 = Cells.Find(look1)
If Not rng1 Is Nothing Then
long= rng1.Column   '
End If
Set clmn = Columns(long)
ThisWorkbook.Worksheets.Add.Name = "Datum"
_
_
_
_
clmn.Copy _
Destination:=Worksheets("Datum").Range("A2")
End Sub
ich hab das nochmal verbessert. In meinem code stand das schon richtig bloss hab ich das hier noch einmal eingetippt weswegen ich da ein Tippfehler hatte.
Also wenn ich die Ganze Spalte anwähle
Range("F:F")
bekomme ich den gleichen Fehler. Bei einem kleineren Bereich z.B. Range("F1:F2000") tritt der Fehler nicht auf?
Anzeige
AW: Laufzeitfehler 1004, Anw.. beim kopieren
11.01.2021 11:11:47
Rudi
Hallo,
natürlich tritt der Fehler auf, wenn du eine ganze Spalte in eine andere als die erste Zeile kopieren willst. Das ist auch manuell der Fall. Dir fehlt dann ja eine Zelle.
Gruß
Rudi
AW: Laufzeitfehler 1004, Anw.. beim kopieren
11.01.2021 13:13:17
Tim
Vielen Dank, das war das Problem!
AW: Laufzeitfehler 1004, Anw.. beim kopieren
11.01.2021 11:14:14
Daniel
Hi
Wenn du einen Zellbereich kopierst und an anderer Stelle einfügst, dann muss der eingefügte Bereich auch auf das Tabellenblatt passen und darf nicht über dessen Grenzen hinausragen.
Dh wenn du eine ganze Spalte kopierst, musst du diese in Zeile 1 einfügen, ansonsten ragt die Einfügung am unteren Ende über die letzte Zeile des Blattes hinaus.
Dh deine Destination muss dann A1 sein.
Gruß Daniel
Anzeige
AW: Laufzeitfehler 1004, Anw.. beim kopieren
11.01.2021 13:13:54
Tim
Vielen Dank!
AW: Laufzeitfehler 1004, Anw.. beim kopieren
11.01.2021 11:17:24
Werner
Hallo,
sorry, aber der ganze Code ist Schrott.
1. kannst du long nicht als Variablennamen verwenden. Long ist ein Variablentyp und kann/darf nicht als Variablenname verwendet werden. Das zeigt dir Excel aber auch an, diese Codezeile wird rot "markiert".
2. bei Find muss/sollte man immer die weiteren Optionen lookin und lookat mit angegeben werden. Warum? Beim händischen benutzen der Suche speichert Excel die verwendeten Suchoptionen ab. Willst du dann per VBA mit anderen Optionen suchen und gibst die nicht explizit an, dann sucht Excel mit den gespeicherten Optionen der letzten Suche. Das kann dann aber nicht für diesen Fall passen und führt kann zu falschen Ergebnissen führen.
3. Kannst du nicht eine ganze Spalte in Zelle A2 kopieren. Eine Spalte ist eine Spalte und kann auch wieder nur in eine Spalte kopiert werden. Versuche mal händisch die komplette Spalte A in die Zelle D2 zu kopieren.
Sub Test()
Dim look1 As String, rng1 As Range
look1 = "Date"
With Worksheets("Tabelle1")
Set rng1 = .Cells.Find(what:=look1, LookIn:=xlValues, lookat:=xlWhole)
If Not rng1 Is Nothing Then
Worksheets.Add.Name = "Datum"
.Columns(rng1.Column).Copy Destination:=Worksheets("Datum").Range("A1")
End If
End With
Set rng1 = Nothing
End Sub
Gruß Werner
Anzeige
AW: Laufzeitfehler 1004, Anw.. beim kopieren
11.01.2021 11:18:37
ChrisL
Hi
Eine der Fehlerursachen wurde bereits durch meine Gehilfen beschrieben :P
Dass eine Variable nicht long benannt werden sollte, zeigt die rote Farbe.
Hier den Code etwas eingedampft, allerdings frage ich mich, ob Date/Datum tatsächlich als String deklariert sein sollte.
Sub Test()
Dim look1 As String
Dim rng1 As Range
look1 = "Date"
Set rng1 = Cells.Find(look1)
If Not rng1 Is Nothing Then
ThisWorkbook.Worksheets.Add.Name = "Datum"
rng1.EntireColumn.Copy _
Destination:=Worksheets("Datum").Columns(1)
End If
End Sub
cu
Chris
Anzeige
AW: Laufzeitfehler 1004, Anw.. beim kopieren
11.01.2021 13:15:43
Tim
Hallo Chris,
danke nochmals für die Antwort, es lag tatsächlich daran, dass wenn ich eine Spalte kopiere ich sie in die erste Zelle einfügen muss. Der Rest passt. Danke für deine Zeit.

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige