2013-10-16 14 views
5

Tôi giữ nút điều khiển người dùng trong trang tính để kích hoạt macro, lần lượt hiển thị biểu mẫu người dùng, Trong biểu mẫu tôi muốn hiển thị tệp đã mở trong hộp kiểm (sử dụng bộ sưu tập Sổ làm việc) .Tôi muốn chạy macro chỉ thực hiện tác vụ cho người dùng đã chọn tệp.Biểu mẫu người dùng không kích hoạt Khởi tạo hoặc kích hoạt sự kiện

Vì vậy cho nút trong bảng tính của mình, tôi đã gán sau đây vĩ mô

Private Sub Button2_Click() 

    Load MyForm 

    MyForm.Show 

End Sub 

Lúc đầu, tôi giữ mã dưới đây vào module, nơi phụ vĩ mô của tôi là there.Since nó không làm việc, tôi phải nhấp trên mẫu người dùng và lựa chọn mã xem và giữ mã dưới đây. Nhưng vẫn còn nó hiển thị cùng một hình thức người dùng được thiết kế tĩnh, không phải là dynamic.I giữ breakpoint ở cả hai tải Myform và MYform.Show() và tôi bước qua code.It không bao giờ đi vào intialize hoặc kích hoạt phương pháp ở tất cả.

Private Sub MyForm_Activate() 
    'for checking the whether this method is called or not I am trying to change caption 
    MyForm.LabelSelectFile.Caption = "dhfdfldkfldzjf;zdfkz;d" 

    Dim mymyWorkBook As Workbook 
    For Each mymyWorkBook In Workbooks 
    'code for creating checkbox based on the file name displayed by the workbook collection  
    Next mymyWorkBook 
End Sub 

Tôi không thể hiểu tại sao trường hợp không nhận được triggered.Please giúp tôi vượt qua this.Thanks trước

Trả lời

11

Mặc dù tên của hình thức là MyForm, bạn vẫn cần phải sử dụng userform .

'~~> in your worksheet 
Private Sub Button2_Click() 
    MyForm.Show 
End Sub 

'~~> In the userform code area 
Private Sub UserForm_Initialize() 
    '~~> Your code here 
End Sub 

hoặc

Private Sub UserForm_Activate() 

End Sub 

Các tốt nhất là luôn chọn sự kiện từ trình đơn thả xuống, chứ không phải gõ nó

enter image description here

+0

Cảm ơn, tôi đã có thể hoàn thành chương trình macro. Tôi bắt đầu viết userforms ngày hôm qua chỉ, và tôi không biết rằng tên nên luôn luôn là userform.Since cho nút bấm xử lý là button1_Click(), tôi nghĩ rằng nó sẽ áp dụng cho khởi tạo e lỗ thông hơi. Vui, Mã hóa để tạo ra các hộp kiểm động và đọc từ chúng mất ít thời gian hơn là khắc phục được Gripe này. – saiki4116

+1

Rất vui khi tất cả hoạt động cho bạn :) –

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