2012-05-11 16 views
13

Tôi đang cố gắng tự động thêm các nút vào biểu mẫu người dùng, nhưng biểu mẫu người dùng chỉ xuất hiện trống. Ive đơn giản bản chất của mã càng nhiều càng tốt để kiểm tra lỗi (không phải là nó đã giúp tôi)Tự động thêm nhãn vào biểu mẫu người dùng = Trống UserForm

Sub addLabel() 
UserForm2.Show  
Dim theLabel As Label 
Dim labelCounter As Integer 

For labelCounter = 1 To 3 
    Set Label = UserForm2.Controls.Add("Forms.Label.1", "Test" & labelCounter, True) 
    With theLabel 
     .Caption = "Test" & labelCounter 
     .Left = 10 
     .Width = 50 
     .Top = 10 
    End With 
End Sub 

Có cách nào kiểm tra nếu các nút đã được thêm vào nhưng là vô hình? Hoặc tại sao họ không được thêm vào. Bất kỳ trợ giúp đánh giá rất nhiều.

Trả lời

20

Một vài điều:

  1. Bạn cần phải hiển thị UserForm của bạn như vbModeless - khác mã dừng trên UserForm2.Show
  2. Bạn đang tạo một đối tượng gọi Label sau đó sử dụng With trên theLabel
  3. Bạn sẽ sau đó cần phải tăng vị trí của ba nhãn của bạn để tránh trùng lặp (mà tôi đã thực hiện bằng cách sử dụng Top).

    Sub addLabel() 
    UserForm2.Show vbModeless 
    Dim theLabel As Object 
    Dim labelCounter As Long 
    
    For labelCounter = 1 To 3 
        Set theLabel = UserForm2.Controls.Add("Forms.Label.1", "Test" & labelCounter, True) 
        With theLabel 
         .Caption = "Test" & labelCounter 
         .Left = 10 
         .Width = 50 
         .Top = 10 * labelCounter 
        End With 
    Next 
    End Sub 
    
+0

Cám ơn bạn rất nhiều cho các thông tin phản hồi. Tôi sao chép và dán mã của bạn trực tiếp vào mô-đun UserForm2, nhấn f5, biểu mẫu tải, nhưng vẫn hoàn toàn trống. Tôi thậm chí còn mở một cuốn sách làm việc hoàn toàn mới, lặp lại các bước trên, lưu sổ làm việc mới và nhấn chạy và vẫn chỉ là một biểu mẫu người dùng trống. Có khả năng một thiết lập mà tôi phải thay đổi hoặc một cái gì đó bên ngoài để mã, như mã của bạn trông giống như nó không chính xác những gì tôi muốn nó làm, nhưng nó không: S Cảm ơn một lần nữa! – BiGXERO

+0

@BiGXERO thử chạy mã từ mô-đun chuẩn. – brettdj

+1

OMG! Tất nhiên! Cảm ơn bạn rất nhiều. Đây là lý do tại sao tôi yêu trang web này. Bạn là một người tốt! – BiGXERO

-4

thử mã dưới đây

Set theLabel = UserForm2.Designer.Controls.Add("Forms.Label.1", "Test1", True) 
+0

những người downvote ít nhất nói lý do tại sao ... –

+0

Sử dụng Designer là lười biếng và nguy hiểm trong trường hợp này. Nó cho thấy sự thiếu hiểu biết về đối tượng Forms và cách tương tác với chúng – FinancialRadDeveloper

Các vấn đề liên quan