2017-01-13 15 views
0

Ich benutze diesen Code, um das aktive Blatt zu löschen und kopieren Sie dann ein anderes Blatt, Wie kann ich die aktive Blatt Indexnummer speichern, damit ich es verwenden kann, um das kopierte Blatt zu den gespeicherten zu verschieben Indexnummer?Excel VBA Store Blatt Indexnummer für die spätere Verwendung

Master_Work_Order.Visible = True 


Dim oldSheetName As String 
Dim Ws As Worksheet 
Dim oldTabColor 
Dim oldSheetIndexNumber 

'Store 
oldSheetName = ActiveSheet.NAme 
oldTabColor = ActiveSheet.Tab.Color 
' oldSheetIndexNumber = Store active sheet index number 

ActiveSheet.Delete 

Master_Work_Order.Copy After:=Sheets(ActiveSheet.Index) 
Set Ws = ActiveSheet 

'set new copied sheet name to previous ActiveSheet's name 

Ws.NAme = oldSheetName 
Ws.Tab.Color = oldTabColor 
' Move active sheet to stored index number 


Master_Work_Order.Visible = 2 'Makes sheet very hidden 

Antwort

2

Wenn ich Ihre Situation bekomme, sollte dies funktionieren. Ich habe es nur eingeschränkt getestet. Die .Copy-Methode sollte das neue Arbeitsblatt an den richtigen Speicherort verschieben.

Dim Ws As Worksheet 
Dim oldTabColor 
Dim oldSheetIndexNumber As Integer 

'Store 
oldSheetName = ActiveSheet.Name 
oldTabColor = ActiveSheet.Tab.Color 
oldSheetIndexNumber = ActiveSheet.Index 

ActiveSheet.Delete 

If ActiveWorkbook.Sheets.Count >= oldSheetIndexNumber Then 
    ActiveWorkbook.Sheets("Sheet2").Copy before:=Sheets(oldSheetIndexNumber) 
Else 
    ActiveWorkbook.Sheets("Sheet2").Copy after:=Sheets(oldSheetIndexNumber - 1) 
End If 
Set Ws = ActiveSheet 

'set new copied sheet name to previous ActiveSheet's name 

Ws.Name = oldSheetName 
Ws.Tab.Color = oldTabColor 
+0

'Master_Work_Order.Copy nach: = Sheets (oldSheetIndexNumber - 1)' scheint in Ordnung, im nicht sicher zu arbeiten, was Sie für die if-Anweisung haben. – luke

+0

@luke was passiert, wenn der alte Blattindex 1 ist? Deshalb die if-Anweisung. – cyboashu

+0

@luke, hatte Cyboashu die Erklärung. Weder vorher noch nachher wird unter allen Umständen funktionieren. – vknowles

Verwandte Themen