Mehrere Zellen (nicht im Bereich) von einer Arbeitsmappe in eine andere kopieren

Mehrere Zellen (nicht im Bereich) von einer Arbeitsmappe in eine andere kopieren

Ich bin auf Ihren Artikel gestoßen„mehrere Zellen (nicht im Bereich) von einem Blatt in ein anderes kopieren“. Ich habe das VBA-Makro kopiert und eingefügt, die Zellen in einer ausgeblendeten Zeile referenziert und eine Schaltfläche zum Ausführen zugewiesen. Es funktioniert fantastisch von einem Blatt zu einem anderen Blatt in derselben Arbeitsmappe. Mein Problem ist, dass ich von einem Arbeitsmappenblatt1 (Rechnung) zu einem anderen Arbeitsmappenblatt1 (Forderungen mit Fälligkeit) kopieren muss. Kann der vorhandene VBA-Code angepasst werden, um das zu tun?

Dies sind die Änderungen, die ich am VBA-Makro vorgenommen habe, um es an meine Bereiche anzupassen

wks1.Cells(use_row,1) = wks.cells (50,1)
wks1.Cells(use_row,2) = wks.cells (50,2)
wks1.Cells(use_row,3) = wks.cells (50,3)
wks1.Cells(use_row,4) = wks.cells (50,4)
wks1.Cells(use_row,5) = wks.cells (50,5)
wks1.Cells(use_row,6) = wks.cells (50,6)

Antwort1

Sicherlich. Sie müssen lediglich einen Verweis (Variable im Unterverzeichnis) auf die andere Arbeitsmappe erstellen und dort das Empfängerblatt auswählen.

Dies wird hier durch das Ersetzen der ersten Zeilen erreicht, auf denen der restliche Code basiert (wobei Ihre eigenen Änderungen erforderlich sind):

Dim wkb As Workbook,wkb2 as workbook
Dim wks as worksheet, wks1 As Worksheet
Set wkb = ThisWorkbook ' Or workbooks("SourceWorkbook.xlsm") if it's saved.
set wkb2 = Workbooks("OtherWorkbook.xlsx")
Set wks = wkb.Sheets("Sheet1") ' Name references are a little clearer.
Set wks1 = wkb2.Sheets("Sheet1")

Sie könnten am Ende auch ein weiteres „set wkb2 = nothing“ hinzufügen, aber das ist eher eine Sicherheitsvorkehrung und bewirkt nicht wirklich etwas.

Auf jeden Fall würde ich Ihnen empfehlen, sich ein wenig mit den Grundlagen von VBA zu befassen, wenn Sie relativ komplexe Funktionen benötigen. Wenn Sie nicht ganze Routinen schreiben, nehmen Sie zumindest selbst passable Änderungen vor. Der Teil, den Sie geschrieben haben, könnte beispielsweise in einer Schleife statt mit Copypasta ausgeführt werden, da die Spalten sequenziell sind.

verwandte Informationen