VBA,Excel 2010。
假设:
过程:
脚本代码:
Private Sub CommandButton1_Click()
Dim l As Double, r As Double
Dim ctl As Control
Dim totalPageNum As Integer
'Get number of existing pages
totalPageNum = MultiPage1.Pages.Count
'Add new one
MultiPage1.Pages.Add
'Copy elements
MultiPage1.Pages(0).Controls.Copy
MultiPage1.Pages(totalPageNum).Paste
MultiPage1.Pages(totalPageNum).Caption = "Page" & MultiPage1.Pages.Count
'Copying frame coordinates
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(totalPageNum).Controls
If TypeOf ctl Is MSForms.Frame Then
ctl.Left = l
ctl.Top = r
Exit For
End If
Next
End Sub
问题:如何在重新打开表单/文件时保存页面(所以我可以在第4步获得2页)
P.S。不幸的是,我还没有发布图片来更好地解释这个问题。
感谢您的帮助!
答案 0 :(得分:0)
这样做的唯一方法是简单地隐藏UserForm而不是卸载它,如果它在Excel的同一会话中。如果必须关闭Excel并重新打开它,则无法保存。
我建议保存在VeryHidden工作表上创建页面所需的信息,并每次动态创建UserForm。