Tôi có một đa dạng trong một biểu mẫu người dùng. Trong thời gian chạy, người dùng có thể chọn thêm x số trang bất kỳ lúc nào. Các yếu tố của mỗi trang sẽ giống nhau. Tôi tự hỏi nếu có một cách để nhân đôi các yếu tố này, hoặc tôi sẽ cần phải tạo lại các yếu tố tương tự cho mỗi trang mới? Nếu vậy, làm cách nào để chỉ định vị trí trên trang nơi đặt phần tử?Sao chép các yếu tố từ trang này sang trang khác trong nhiều trang với VBA trong Excel
5
A
Trả lời
7
Bí quyết là để đặt tất cả các điều khiển trong một khung trong trang 1 và sau đó phần còn lại trở nên dễ dàng :)
Mã này sẽ sao chép các điều khiển từ Page1
để Page2
sau khi tạo Page2
và sắp xếp chúng cho phù hợp.
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
SNAPSHOT
0
Các "Run-time error '-2147417949 (80010108)' có thể là do có một khung ở một nơi khác trên biểu mẫu. Cố gắng loại bỏ bất kỳ khung hình khác và chạy lại:
Bạn có thể sao chép chúng bằng cách sao chép và dán hoặc bằng cách tạo từ đầu. –