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
Antwort
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
Genius! Thanks! – Ehudz
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
Welche Zeile gibt Ihnen den Fehler? Ich habe es gerade nochmal getestet und es funktioniert. –
Die „Laufzeitfehler '-2147417949 (80010108)' von verursacht werden können, einen Rahmen irgendwo sonst auf der Form. Versuchen Sie, andere Frames entfernt
Sie können sie kopieren, einfügen oder neu erstellen –