2012-05-30 15 views
5

Ich habe eine mehrseitige in einem Benutzerformular. Während der Laufzeit kann der Benutzer jederzeit x Seitenanzahl hinzufügen. Die Elemente jeder Seite sind gleich. Ich frage mich, ob es eine Möglichkeit gibt, diese Elemente zu duplizieren, oder müsste ich dieselben Elemente für jede neue Seite neu erstellen? Wenn ja, wie lege ich Orte auf der Seite fest, auf der das Element platziert werden soll?Kopieren von Elementen von einer Seite zu einer anderen in Multipage mit VBA in Excel

enter image description here

+0

Sie können sie kopieren, einfügen oder neu erstellen –

Antwort

7

Der Trick ist, alle Steuerelemente in einem Rahmen in der ersten Seite zu setzen und dann wird der Rest einfach :)

Dieser Code die Steuerelemente aus Page1 zu Page2 nach Page2 Erstellung kopiert und ausrichten sie entsprechend.

Option Explicit 

Private Sub CommandButton2_Click() 
    Dim l As Double, r As Double 
    Dim ctl As Control 

    MultiPage1.Pages.Add 

    MultiPage1.Pages(0).Controls.Copy 
    MultiPage1.Pages(1).Paste 

    For Each ctl In MultiPage1.Pages(0).Controls 
     If TypeOf ctl Is MSForms.Frame Then 
      l = ctl.Left 
      r = ctl.Top 
      Exit For 
     End If 
    Next 

    For Each ctl In MultiPage1.Pages(1).Controls 
     If TypeOf ctl Is MSForms.Frame Then 
      ctl.Left = l 
      ctl.Top = r 
      Exit For 
     End If 
    Next 
End Sub 

SCHNAPPSCHUSS

enter image description here

+0

Genius! Thanks! – Ehudz

+0

Wenn ich den obigen Code ausführen, bekomme ich eine "Run-Tim e error '-2147417949 (80010108)': Automatisierungsfehler beim Aufruf des Objekts, das von seinen Clients getrennt wurde. " – Ehudz

+0

Welche Zeile gibt Ihnen den Fehler? Ich habe es gerade nochmal getestet und es funktioniert. –

0

Die „Laufzeitfehler '-2147417949 (80010108)' von verursacht werden können, einen Rahmen irgendwo sonst auf der Form. Versuchen Sie, andere Frames entfernt