2017-10-12 1 views
1

Ich habe ein Blatt mit sieben Rechtecken, jedem Rechteck ist ein Makro zugewiesen und ich habe es wie eine Vorlage verschönert . Es gibt viele solche Blätter und ich möchte, dass sie alle versteckt sind.Kopiere ein verstecktes Blatt (welches Formen enthält, denen Makros zugewiesen wurden) auf ein anderes Blatt und verstecke das Blatt zurück

Jetzt möchte ich ein Blatt einblenden, sagen sheet1, kopieren Sie alle seine Inhalte einschließlich der Formen und entsprechenden Makros im exakt gleichen Format, fügen Sie es in Blatt 3 und verstecken Sie Blatt 1 erneut.

Ich habe dies mit dem folgenden Code versucht, aber irgendwie die Objekte und das Format wird nicht kopiert.

Sub abcd() 
     Dim ws As Worksheet 
     Set ws = Sheets("Sheet2") 
     ws.Visible = xlSheetVisible 
      ws.Select 

      Selection.Copy 

     Dim rs As Worksheet 
     Set rs = Sheets("Sheet4") 
      rs.Select            
      ActiveSheet.Paste 
      Application.CutCopyMode = False 
End Sub 

Wie kann ich das erreichen?

Antwort

0

Sie sollten das ganze Blatt kopieren, nicht nur die Auswahl:

'// get the sheet to be copied 
Dim ws As Worksheet 
Set ws = Sheet1 


'// copy it and position before, say sheet5 
ws.Copy Before:=Sheet5 

'// get a reference to the new sheet 
Dim WSNew as worksheet 
Set WSNew = Sheets(Sheet5.Index - 1) 

'// Give the sheet a new name and make it visible. 
WSNew.Name = "New name" 
WSNew.Visible = xlSheetVisible 

Bitte beachte, dass ich die interne Blatt Programmierung Namen verwenden, nicht das Display Namen- das ist zuverlässiger, da der Benutzer nicht die internen ändern Name, obwohl Sie es in der Registerkarte Eigenschaften für das Blatt ändern können.

Außerdem ist es nicht notwendig, das Vorlagenblatt sichtbar zu machen, nur das kopierte.

Verwandte Themen