/ / Fehler 1004 beim Kopieren und Einfügen von Daten - excel, vba, excel-vba

Fehler 1004 beim Kopieren und Einfügen von Daten - excel, vba, excel-vba

Ich erhalte die Fehlermeldung Laufzeitfehler 1004 (anwendungsdefinierter oder objektdefinierter Fehler).

Grundsätzlich in Spalte 30 (welche Buchstaben auch immer)entspricht), soll eine bestimmte Auswahl kopieren und einfügen. Abhängig von der Anzahl der Bieter, sagen wir 2, gibt es als nächstes alle 8 Spalten eine weitere Auswahl, die kopiert und in das neue Arbeitsblatt eingefügt werden muss.

Angenommen, ich habe 2 Bieter:

Spalte 30 und Spalte 38 müssten dann seinkopieren und nebeneinander in das andere Arbeitsblatt einfügen. Kann mir hier jemand helfen? Ich habe kein Problem damit, dass die Eingabe angezeigt wird, aber sobald sie diesen Teil erreicht, um mit dem Kopieren und Einfügen der Spalten zu beginnen, wird eine Fehlermeldung angezeigt.

""""Get adsad
For i = 0 To bidNum - 1
Range(colRange.Offset(0, 30 + i * 8)).Select
Range(colRange.Offset(0, 30 + i * 8)).EntireColumn.Copy
Worksheets("Per FOB Delivered").Activate
colRange.Offset(0, 11 + i).Select
colRange.Offset(0, 11 + i).Paste
With Selection
.HorizontalAlignment = xlGeneral
.Font.Name = "Calibri"
.Font.Size = 10
.EntireColumn.AutoFit
End With
Next i
ActiveCell.Offset(0, -10).Range("A1").Select
Sheets("Master Calc").Select

Die Erklärungen sind hier:

"Declarations
Dim bidNum As Integer
Dim colRange As Range
Set colRange = Range("A1")

"User Input
bidNum = InputBox("Please Enter the number of bidders: ")

Bearbeiten: Ich glaube, ich habe das Problem auf Folgendes eingegrenzt: Arbeitsblätter ("Pro geliefertem FOB"). Aktivieren Ich habe alles auf Kommentar gesetzt und der Code hat funktioniert, und dann bin ich Zeile für Zeile gegangen und es hat aufgehört zu funktionieren, als ich diesen Teil des Codes erreicht habe (fordert diese Fehlermeldung auf). Ich habe es versucht:

ActiveWorkbook.Sheets("Per FOB Delivered").Activate

und es hat auch nicht funktioniert. Für den Datensatz erstellt mein Code diese Seite und funktioniert bis zu diesem Teil (nicht aufgelistet, weil es ziemlich lang ist).

Hier ist ein Ausschnitt aus einem Teil des anderen Codes, der einwandfrei funktioniert. Beachten Sie, dass dieser Abschnitt vor dem anderen steht und es ähnliche Abschnitte wie diesen gibt. Ich habe keine Fehler mit diesem Code aufgelistet:

"Get Current Net FOB Overage /lb
Range("P1").Select
Range("P1").EntireColumn.Copy
Sheets("Per FOB Delivered").Activate
ActiveCell.Range("J1").Select
ActiveSheet.Paste
With Selection
.HorizontalAlignment = xlGeneral
.Font.Name = "Calibri"
.Font.Size = 10
.EntireColumn.AutoFit
End With
ActiveCell.Offset(0, -9).Range("A1").Select
Sheets("Master Calc").Select

Antworten:

0 für die Antwort № 1

Es wurde bereits in den Kommentaren erwähnt, aber Sie sollten die Verwendung von .Select so weit wie möglich vermeiden. Oft ist es unnötig und Ihr Code wird schneller ausgeführt und sieht viel einfacher aus, wenn Sie es vermeiden.

Verwenden Sie für Ihr Problem

colRange.Offset(0, 11 + i).PasteSpecial

Anstelle von .Paste sollten zusammengeführte Zellen keinen Unterschied machen.