2016-10-01 2 views
2

"First-Timer hier, also danke für Ihre Geduld!
Ich habe ein Arbeitsbuch mit mehreren Blättern, und ich muss:Wie zu VBA, um ein Paar Blätter auszuwählen und sie zu einem neuen wb zu kopieren?

1) Auswahl Paare von Arbeitsblättern (index und der Index +1)

2) Kopieren sie in eine neue Arbeitsbuch

3) Benennen Sie die Blätter mit dem, was Etikett in einer referenzierten Zelle ist (wie A1)

4) wiederholen Sie dann für jedes Paar von Blättern in der Arbeitsmappe (Dutzende von Paaren)

da ich zu vba bin sehr neu (nur nahm einen Klasse), ich bin leicht verwirrt. Der einzige Teil, den ich bis jetzt habe, bezieht sich auf die Zelle A1, um das Blatt umzubenennen, egal was für eine Textzeichenfolge in dieser Zelle ist. Ich kann den Rest nicht herausfinden. Ich denke, es hat etwas mit Worksheet.Index oder Arbeitsblätter (Index) und eine Art von Schleife, wo Index 2 und aktiviert das Blatt und das nächste vor dem Kopieren: Blatt 1 und 2, dann Blatt 3 und 4, etc es wird geprüft, um sicher zu sein, nicht null, weil Sie nicht ein Blatt mit einem Nullwert.

Private Sub Worksheet_Calculate() 
Dim s As String 
s = "sheet 1" 
If Range("A1").Value <> "" Then 
    s = Range("A1").Value 
End If 
ActiveSheet.Name = s 
End Sub 

So wie ich es, die Zelle A1 verstehen benennen. Die Verwendung und Syntax des Rests davon ist an dieser Stelle ziemlich über mich hinaus, aber ich möchte wirklich lernen und schließlich ein beitragendes Mitglied dieser Gemeinschaft werden. Ich bin ganz neu in meinem Job und arbeite nur in Teilzeit. Eine Lösung für meinen Chef zu finden, könnte bedeuten, dass ich dauerhaft werde. Daher ein GROSSER, GROSSER DANK !!!

+0

Sind diese indexierten Blätter in konsistenter Weise benannt? Sie müssten Code schreiben, der alle verfügbaren Blätter in einer Arbeitsmappe durchläuft - oder die Arbeitsmappe mit den Blättern öffnet - Arbeitsblatt mit dem Inhalt identifiziert, in den Sie kopieren möchten. Wenn diese Blätter nicht einheitlich benannt sind, haben Sie möglicherweise Probleme. – Lowpar

+0

Ja, alle Blätter werden konsistent mit der g/l Kontonummer benannt: xx-xxxx-xxxx-xx. Gibt es nicht irgendeine Art von Befehl (Methode?), Die Blätter anhand ihrer INDEX-Nummer (1,2,3 usw.) auswählt? –

+0

Sie müssten eine erstellen, aber wenn es Konsistenz mit den Namen der Blätter gibt, können Sie es tun – Lowpar

Antwort

0
Option Explicit 

Private Sub Worksheet_Calculate() 
Dim s As String 
Dim ws As Worksheet 
Dim wsi As Worksheet 

Set wsi = Sheets("Sheet4")' You need to create a name for the sheet to paste into 

For Each ws In ActiveWorkbook.Worksheets 
If Not IsEmpty(ws.Range("A1")) and ws.name = "INDEXCOPY" Then 
    ws.Name = ws.Range("A1").Value 
    ws.Range("A1:" & ws.Range("A1").SpecialCells(xlCellTypeLastCell).Address).Copy _ 
    Destination:=wsi.Range("A1") 
End If 
Next ws 
End Sub 

Dieser Code wird Ihnen einen Weg, Sie jedoch zu unterscheiden zwischen einem Indexblatt Sie kopieren möchten aus, im Vergleich zu einem Indexblatt kopiert werden sollen den Einstieg benötigen. Sie müssten eine zusätzliche if then-Anweisung hinzufügen, siehe obigen Kommentar. Ich würde hier aussehen - http://www.rondebruin.nl/win/s3/win006.htm

+0

Vielen Dank, @Lowpar! Ich werde darüber nachdenken und sehen, was ich herausfinden kann. Ich werde auch den Link überprüfen, den Sie angegeben haben. Nur um sicher zu sein, verstehe ich, was Code tut ... –

+0

Set wsi = Sheets ("Sheet4") kopiert das Blatt IN PLACE von "Sheet4" oder wird es NAME es "Sheet4"? Außerdem verstehe ich nicht die ws.name = INDEXCOPY arg. Nimmt das nur das erste Blatt? Modul sagt Bereich A1 bis letzte Zelle (xlCellTypeLastCell) .Address) nehmen und .copy es, legt in das wsi-Arbeitsblatt beginnend bei Range ("A1"), richtig? Wie man das INDEX = 2 Blatt gleichzeitig in das gleiche neue wb wie Blatt1 kopiert. Also, es ist wirklich für jedes Paar, wenn das möglich ist. Dann kopiert NEXT die Blätter 3 und 4 in ein NEUES wb; Sheets 5 und 6 zu NEW, etc. –

+0

Ich habe recherchiert, bin aber nicht bereit, eine Antwort oder einen weiteren Kommentar zu diesem Zeitpunkt zu veröffentlichen, da ich leicht verwirrt werde (vor allem den INDEX Teil herauszufinden). Ha! –

Verwandte Themen