2016-08-02 4 views
0

Ich versuche, eine Reihe von Kopieren/Einfügen von Zellbereichen in einen einfacheren (und scheinbar schneller) Wert = Wert Stil zu konvertieren.VBA Konvertierung von Kopieren/Einfügen zu Wert = Wert verursacht Fehler 1004

im Wesentlichen ich aus dieser gehe,

wb1.Sheets(1).Range(Cells(5, i), Cells(vaLastRow, i)).Copy 
ThisWorkbook.Sheets(strWorkingTableName).Cells(2, 1).PasteSpecial xlPasteValues 
Application.CutCopyMode = False 

dazu

ThisWorkbook.Sheets(strWorkingTableName).Range(Cells(2, 1), Cells((1 + vaLastRow - 5), 1)).Value = wb1.Sheets(1).Range(Cells(5, i), Cells(vaLastRow, i)).Value 

aber wenn ich bekomme ich den gefürchteten „Laufzeitfehler‚1004‘; Anwendungs ​​definiert oder Objekt definierter Fehler ".

Bitte helfen Sie mir herauszufinden, warum ich diesen Fehler bekomme.

+1

ich diesen Fehler hassen. Es ist so allgemein gehalten. – bernie

+1

Die Bereichsgrößen stimmen nicht überein. Sie ordnen von etwas, das 'vaLastRow - 4' Zeilen in etwas hat, das' vaLastRow - 5' Reihen hat (ich denke - es wird spät und Mathe wird hart) – Mikegrann

+0

@Mikegran, wenn ich ihn durch vaLastRow - 5 ersetze oder vaLastRow - 4 ist immer noch mit dem gleichen Fehler. – tincanfury

Antwort

1

Versuchen Sie diesen Code:

with wb1.Sheets(1).Range(Cells(5, i), Cells(vaLastRow, i)) 
    thisworkbook.sheets(strWorkingTableName).cells(2,1).resize(.rows.count, .columns.count).value = .value 
end with 
+0

, die aussieht, um zu arbeiten, danke! – tincanfury

-1

Ich glaube, es denkt, dass Sie versuchen, mit dem = irgendeine Art von Objekt zu erstellen.

Ich würde vielleicht so etwas wie diese versuchen:

newvalue = wb1.Sheets(1).Range(Cells(5, i), Cells(vaLastRow, i)).Value 
ThisWorkbook.Sheets(strWorkingTableName).Range("your range").Value = newvalue 

Ich glaube, Sie auch so etwas tun kann:

Thisworkbook.Sheets("sheetname1").Range("your range").Copy wb1.Sheets("sheetname2").Range("your range") 
+0

* Ich glaube, es glaubt, dass Sie versuchen, eine Art von Objekt mit dem = * Nope zu erstellen, das würde einen anderen Fehler (438, wahrscheinlich) auslösen. Dies ist eine gültige Methode zum Kopieren eines Wertebereichs an einen anderen Ort –

Verwandte Themen