VisualBasic VBA Zellen von einer Datei in eine andere Kopieren funktioniert nicht

Flo0

Lt. Junior Grade
Registriert
Feb. 2011
Beiträge
257
Hallo CBler,

ich mal wieder. Ich schaff es nicht die Zellen/Zelleninhalte zu kopieren. In einer Funktion funktioniert es bereits, das ich einen String splitte auf ein Array verteile und einfüge. Jedoch bei einer anderen Funktion klappt es gar nicht. Egal ob ich es als Range/Array whatever probiere es funktioniert nicht.
Private Sub CopyToSheet(srcIndex as Integer, targetIndex as Integer)
Dim cache(1) as String
' mTargetWorksheet.Range("I" & targetIndex & ":J" & targetIndex).Value = mSourceWorksheet.Range("B" & srcIndex & ":C" & srcIndex).Value

' ThisWorkbook.Worksheets(ActiveSheet).Range("I" & srcIndex).Copy _
' mTargetWorkbook.Worksheets(2).Range("B" & targetIndex)
' ThisWorkbook.Worksheets(ActiveSheet).Range("J" & srcIndex).Copy _
' mTargetWorkbook.Worksheets(2).Range("C" & targetIndex)

cache(0) = mSourceWorksheet.Range("B" & srcIndex).Value
cache(1) = mSourceWorksheet.Range("C" & srcIndex).Value
mTargetWorksheet.Range("I" & targetIndex).Value = cache(0)
mTargetWorksheet.Range("J" & targetIndex).Value = cache(1)

cache(0) = mSourceWorkbook.Sheets(mSourceSheetIndex).Range("B" & srcIndex).Value
cache(1) = mSourceWorkbook.Sheets(mSourceSheetIndex).Range("C" & srcIndex).Value
mTargetWorkbook.Sheets(2).Range("I" & targetIndex).Value = cache(0)
mTargetWorkbook.Sheets(2).Range("J" & targetIndex).Value = cache(1)

Call SplitTester(mSourceWorksheet.Range("F" & srcIndex).Value, targetIndex)
End Sub
// alles mit mXX gekennzeichnete sind globale Variablen
Hier sieht man 4 meiner vielen Versuche die nicht funktionieren. Es werden teilweise nichtmal Fehler geworfen, lt debugger sind die werte einfach leere Strings.

Die Methode die in SplitTester aufgerunfen werden und aus dem Array funktionieren komischerweise.
Weiß jmd rat? Das ist das letzte kleine Stückchen das mir fehlt damit mein Projekt fertig ist :D

mfg
Flo0
 
Du willst einfach nur einen Bereich von einem Sheet auf ein anderes kopieren? Das geht mit der .copy Methode. Lies dir das mal durch.

Code:
ActiveSheet.Range("I" & srcIndex & ":J" & srcIndex).Copy destination:=mTargetWorkbook.Worksheets(2).Range("B" & targetIndex)

sollte eigentlich funktionieren, unter der Annahme, dass 2 wirklich der Index des Zielsheets im Zielworkbook ist. Du kannst aber auch per Worksheets("Sheetname") das entsprechende Sheet direkt bekommen.
 
Copy habe ich auch schon probiert, hat aber nicht funktioniert. Fehlermeldung hab ich gerade nicht mehr im Kopf.
Ja im ZielWorkbook ist es immer sheet 2 nur im SourceWorkbook ändert sich das Sheet (je nach Monat).
Bis jetzt funktioniert alles, nur das Kopieren funktioniert einfach nicht :/
Ich werde deine Version morgen mal Testen, vielen Dank.
Ergänzung ()

Ok kann geschlossen werden, hatte im Eifer des Gefechts das falsche Worksheet active das in dem Bereich keine Werte hatte( logisch das der Debugger nur leere Strings bringt....) war wohl etwas zu spät. Vielen Dank ;D
 
Zurück
Oben