2016-03-21 5 views
0

Unten wird der Code zum Kopieren von Blättern aus der Quelle und dann zum Umbenennen und Platzieren in ein Ziel verwendet.Benennen Sie das Blatt um, nachdem es kopiert wurde und erstellen Sie die Master-Arbeitsmappe.

Ich möchte die Funktionalität erweitern, um einen anderen Zellbezug zu verwenden, um den Blattnamen in der neu erstellten Datei umzubenennen. (Beachten Sie, dass jede kopierte Arbeitsmappe nur ein Blatt enthält.) Nachdem alle Arbeitsmappen kopiert, umbenannt und die Arbeitsblätter umbenannt wurden, führen Sie alle Arbeitsmappen im Zielpfad zusammen.

Sub CopyRenameFile() 
Dim src As String, dst As String, fl As String, f2 As String 
Dim rfl As String 
Dim rf2 As String 

'Source directory 
src = Range("B3") 

'Destination directory 
dst = Range("D3") 

'File name 
fl = Range("B6") 
f2 = Range("B7") 

'Rename file 
rfl = Range("D6") 
rf2 = Range("D7") 

On Error Resume Next 
    FileCopy src & "\" & fl, dst & "\" & rfl 
    FileCopy src & "\" & f2, dst & "\" & rf2 
    If Err.Number <> 0 Then 
     MsgBox "Copy error: " & src & "\" & rfl 
    End If 
On Error GoTo 0 

Dim xL As Excel.Application 
Set xL = New Excel.Application 
xL.Visible = True 
Dim wb As Excel.Workbook 
Set wb = xL.Workbooks.Open(F6) 

'In case you don't know how here are two ways to reference a sheet: 
Dim sh As Excel.Worksheet 
Set sh = xL.Sheets(1) 

sh.Name = "TestMeOut" 

'Saving and closing are important... 
wb.Save 
Set wb = Nothing 
xL.Quit 
Set xL = Nothing 

End Sub 
+0

Ich sehe dort keine Code Kopierblätter. Wie ist das relevant für die Frage? –

+0

Das obige nimmt eine Datei f1 aus dem Quellverzeichnis, benennt dann die Datei um und speichert sie im Zielverzeichnis. Ich möchte hinzufügen, um die neu benannte Datei zu nehmen und den Blattnamen zu ändern. Danach werden alle Dateien in der Liste kopiert und umbenannt. Sie werden dann in einer einzigen Arbeitsmappe konsolidiert, die von derjenigen, in der das Makro ausgeführt wird, getrennt ist. –

Antwort

0

Wenn das aktive Blatt ist, verwenden

ActiveSheet.Name = "New Name" 

Wenn es nicht das aktive Blatt ist dann verwenden:

Sheets("SheetName").Name = "New Name" 

oder

Sheets(2).Name = "New Name" 

für die letzte Einer, der Index (2 im Beispiel) ist das Blatt Zahl von links nach rechts auf 1.

So öffnen Sie eine Excel-Arbeitsmappe von Dateinamen beginnen zu zählen:

Dim xL As Excel.Application 
Set xL = New Excel.Application 
xL.Visible = True 
Dim wb as Excel.Workbook 
Set wb = xl.Workbooks.Open(put your filename here as a literal or variable) 

'In case you don't know how here are two ways to reference a sheet: 
Dim sh As Excel.Worksheet 
Set sh = xL.Sheets("Sheet1") 
' or 
Set sh = xL.Sheets(1) 

'put your code here 

'Saving and closing are important... 
wb.Save 
Set wb = Nothing 
xL.Quit 
Set xL = Nothing 

HINWEIS: Um die Excel-Referenzen zu verwenden, gehen Sie zu Werkzeug => Verweise und suchen Sie nach dem Microsoft Office xx .x Objektbibliothek (wobei xx.x die Version ist).

+0

Wenn das Blatt nicht aktiv ist, muss ich auf den Dateinamen verweisen oder die Arbeitsmappe auswählen, in der die Blattumbenennung stattfinden soll? –

+0

Ich habe mehr Code hinzugefügt, der zeigt, wie eine Arbeitsmappe geöffnet wird. – PKatona

+0

Also habe ich meinen Code in diesem Beitrag basierend auf dem Rat, den Sie gegeben haben, aktualisiert. F6 ist der Dateipfad für das Arbeitsblatt. Wenn es jedoch ausgeführt wird, öffnet es ein neues Excel-Fenster, aber dann Fehler bei Laufzeitfehler 1004 "Leider konnten wir nicht finden. Ist es möglich, dass es verschoben, umbenannt oder gelöscht wurde?" –

Verwandte Themen