Hỏi về sự kiện Initialize trong UserForm

Liên hệ QC

Blad01

Thành viên thường trực
Tham gia
6/10/07
Bài viết
350
Được thích
28
Chào các bạn, mình làm một UserForm để nhập dữ liệu, nhưng không hiểu sao mình viết code cho sự kiện Initialize trong UserForm lại không chạy và cũng không báo lỗi. Đoạn code đó như sau:
Mã:
Private Sub UserForm_Initialize()
    With uf_Nhaplieu
    .txtTimenguon.Text = ThisWorkbook.Worksheets("Data").Range("C1").Value
    .txtTimedich.Text = ThisWorkbook.Worksheets("Data").Range("E1").Value
    .MultiPage1.Pages(1).Visible = False
    .MultiPage1.Pages(2).Visible = False
    .MultiPage1.Pages(3).Visible = False
    .MultiPage1.Pages(4).Visible = False
    .MultiPage1.Pages(5).Visible = False
    .MultiPage1.Pages(6).Visible = False
    .MultiPage1.Pages(7).Visible = False
    .MultiPage1.Pages(8).Visible = False
    .MultiPage1.Pages(9).Visible = False
    .MultiPage1.Pages(10).Visible = False
    .MultiPage1.Pages(11).Visible = False
    .MultiPage1.Pages(12).Visible = False
    .MultiPage1.Pages(13).Visible = False
    .MultiPage1.Pages(14).Visible = False
    .MultiPage1.Pages(15).Visible = False
    .MultiPage1.Pages(16).Visible = False
    .MultiPage1.Pages(17).Visible = False
End With

Call MinMax(uf_Nhaplieu.Caption)
Size_ListBox
Set sHcq = Nothing
End Sub
Các Page trong MultiPage1 khi load Form không ẩn đi như đoạn code mình viết. mình gửi theo file đính kèm, nút chạy code mình để ở Sheets("Data"). Mong các bạn giúp đỡ.
 

File đính kèm

  • TK2020.rar
    591.3 KB · Đọc: 35
Chào các bạn, mình làm một UserForm để nhập dữ liệu, nhưng không hiểu sao mình viết code cho sự kiện Initialize trong UserForm lại không chạy và cũng không báo lỗi. Đoạn code đó như sau:
Mã:
Private Sub UserForm_Initialize()
    With uf_Nhaplieu
    .txtTimenguon.Text = ThisWorkbook.Worksheets("Data").Range("C1").Value
    .txtTimedich.Text = ThisWorkbook.Worksheets("Data").Range("E1").Value
    .MultiPage1.Pages(1).Visible = False
    .MultiPage1.Pages(2).Visible = False
    .MultiPage1.Pages(3).Visible = False
    .MultiPage1.Pages(4).Visible = False
    .MultiPage1.Pages(5).Visible = False
    .MultiPage1.Pages(6).Visible = False
    .MultiPage1.Pages(7).Visible = False
    .MultiPage1.Pages(8).Visible = False
    .MultiPage1.Pages(9).Visible = False
    .MultiPage1.Pages(10).Visible = False
    .MultiPage1.Pages(11).Visible = False
    .MultiPage1.Pages(12).Visible = False
    .MultiPage1.Pages(13).Visible = False
    .MultiPage1.Pages(14).Visible = False
    .MultiPage1.Pages(15).Visible = False
    .MultiPage1.Pages(16).Visible = False
    .MultiPage1.Pages(17).Visible = False
End With

Call MinMax(uf_Nhaplieu.Caption)
Size_ListBox
Set sHcq = Nothing
End Sub
Các Page trong MultiPage1 khi load Form không ẩn đi như đoạn code mình viết. mình gửi theo file đính kèm, nút chạy code mình để ở Sheets("Data"). Mong các bạn giúp đỡ.
Tôi chạy thử thấy ẩn hết
Mà không hiểu bạn quản lý gì, mà một loạt , toàn là vba trộn công thức thành một loạt code, bạn quản lý code thật giỏi
 
Lần chỉnh sửa cuối:
Upvote 0
Tôi chạy thử thật ẩn hết
Mà không hiểu bạn quản lý gì, mà một loạt , toàn là vba trộn công thức thành một loạt code, bạn quản lý code thật giỏi
Cảm ơn bạn, mình thử nhiều máy cơ quan mình mà sao nó không hoạt động, chẳng hiểu sao nữa. Cách quản lý code thì mình cũng không nghĩ ra cách quản lý thế nào cho khoa học, vì chưa có kinh nghiệm, bạn có cách nào quản lý hay không chia sẻ kinh nghiệm cho ae với.
 
Upvote 0
Chào các bạn, mình làm một UserForm để nhập dữ liệu, nhưng không hiểu sao mình viết code cho sự kiện Initialize trong UserForm lại không chạy và cũng không báo lỗi. Đoạn code đó như sau:
Mã:
Private Sub UserForm_Initialize()
    With uf_Nhaplieu
    .txtTimenguon.Text = ThisWorkbook.Worksheets("Data").Range("C1").Value
    .txtTimedich.Text = ThisWorkbook.Worksheets("Data").Range("E1").Value
    .MultiPage1.Pages(1).Visible = False
    .MultiPage1.Pages(2).Visible = False
    .MultiPage1.Pages(3).Visible = False
    .MultiPage1.Pages(4).Visible = False
    .MultiPage1.Pages(5).Visible = False
    .MultiPage1.Pages(6).Visible = False
    .MultiPage1.Pages(7).Visible = False
    .MultiPage1.Pages(8).Visible = False
    .MultiPage1.Pages(9).Visible = False
    .MultiPage1.Pages(10).Visible = False
    .MultiPage1.Pages(11).Visible = False
    .MultiPage1.Pages(12).Visible = False
    .MultiPage1.Pages(13).Visible = False
    .MultiPage1.Pages(14).Visible = False
    .MultiPage1.Pages(15).Visible = False
    .MultiPage1.Pages(16).Visible = False
    .MultiPage1.Pages(17).Visible = False
End With

Call MinMax(uf_Nhaplieu.Caption)
Size_ListBox
Set sHcq = Nothing
End Sub
Các Page trong MultiPage1 khi load Form không ẩn đi như đoạn code mình viết. mình gửi theo file đính kèm, nút chạy code mình để ở Sheets("Data"). Mong các bạn giúp đỡ.
Đoạn lặp trên nên đổi thành
Mã:
For i=1 to 17    
       .MultiPage1.Pages(i).Visible = False
Next i


---------------
Còn Quản lý thì phải nắm toàn bộ dự án (project ) mới quản lý được, Nên chỉ góp ý kiểu chung chung (thông cảm) : thường người ta phân Code Data, Form là độc lập
 
Upvote 0
mình thấy thông thường, trong cửa sổ vba khi đặt con trỏ chuột vào trong Sub UserForm_Initialize thì trên thanh Object nó phải hiện chữ UserForm và bên thanh Procedure sẽ hiện chữ Initialize. Nhưng trên máy mình lại không như vậy (xem hình), không biết lỗi sảy ra có phải nguyên nhân là do đây không ?Loi.jpg
 
Upvote 0
mình thấy thông thường, trong cửa sổ vba khi đặt con trỏ chuột vào trong Sub UserForm_Initialize thì trên thanh Object nó phải hiện chữ UserForm và bên thanh Procedure sẽ hiện chữ Initialize. Nhưng trên máy mình lại không như vậy (xem hình), không biết lỗi sảy ra có phải nguyên nhân là do đây không ?
Bên trái phải xổ xuống chọn Userform trước, bên phải mới có để chọn
 
Upvote 0
Chào các bạn, mình làm một UserForm để nhập dữ liệu, nhưng không hiểu sao mình viết code cho sự kiện Initialize trong UserForm lại không chạy và cũng không báo lỗi. Đoạn code đó như sau:
Mã:
Private Sub UserForm_Initialize()
    With uf_Nhaplieu
    .txtTimenguon.Text = ThisWorkbook.Worksheets("Data").Range("C1").Value
    .txtTimedich.Text = ThisWorkbook.Worksheets("Data").Range("E1").Value
    .MultiPage1.Pages(1).Visible = False
    .MultiPage1.Pages(2).Visible = False
    .MultiPage1.Pages(3).Visible = False
    .MultiPage1.Pages(4).Visible = False
    .MultiPage1.Pages(5).Visible = False
    .MultiPage1.Pages(6).Visible = False
    .MultiPage1.Pages(7).Visible = False
    .MultiPage1.Pages(8).Visible = False
    .MultiPage1.Pages(9).Visible = False
    .MultiPage1.Pages(10).Visible = False
    .MultiPage1.Pages(11).Visible = False
    .MultiPage1.Pages(12).Visible = False
    .MultiPage1.Pages(13).Visible = False
    .MultiPage1.Pages(14).Visible = False
    .MultiPage1.Pages(15).Visible = False
    .MultiPage1.Pages(16).Visible = False
    .MultiPage1.Pages(17).Visible = False
End With

Call MinMax(uf_Nhaplieu.Caption)
Size_ListBox
Set sHcq = Nothing
End Sub
Các Page trong MultiPage1 khi load Form không ẩn đi như đoạn code mình viết. mình gửi theo file đính kèm, nút chạy code mình để ở Sheets("Data"). Mong các bạn giúp đỡ.
Sửa lại thành:
Mã:
Private Sub UserForm_Initialize()
  With uf_Nhaplieu
    .MultiPage1.Value = 0
    .txtTimenguon.Text = ThisWorkbook.Worksheets("Data").Range("C1").Value
    .txtTimedich.Text = ThisWorkbook.Worksheets("Data").Range("E1").Value
  End With

  Call MinMax(uf_Nhaplieu.Caption)
  Size_ListBox
  Set sHcq = Nothing
End Sub
-----------------------------------------------
Vâng, nhưng trên máy của em bên trái lại không có đối tượng Userform để chọn, đoạn này Sub UserForm_Initialize là do em tự đánh vào
Tôi không tin đâu. Bạn chụp hình lại tình trạng trên máy tôi mới tin
 
Upvote 0
Sửa lại thành:
Mã:
Private Sub UserForm_Initialize()
  With uf_Nhaplieu
    .MultiPage1.Value = 0
    .txtTimenguon.Text = ThisWorkbook.Worksheets("Data").Range("C1").Value
    .txtTimedich.Text = ThisWorkbook.Worksheets("Data").Range("E1").Value
  End With

  Call MinMax(uf_Nhaplieu.Caption)
  Size_ListBox
  Set sHcq = Nothing
End Sub
-----------------------------------------------

Tôi không tin đâu. Bạn chụp hình lại tình trạng trên máy tôi mới tin
Đây thầy ndu ơi, hình này là em chạy code, thầy có thấy các Page không ẩn không ạ.
Chay UF.jpg
Còn đầy là hiện trạng trong code
Untitled2.jpg
-------------------------------------------------------
Thanh Object tên đối tượng được xếp theo thứ tự vần ABC đúng không ạ, em đã kéo hết nhưng không thấy đối tượng UserForm
Untitled3.jpg
 
Upvote 0
Máy bạn bị gì rồi
1597994430145.png

1597994455071.png
 
Upvote 0
.Value = 0 'thì Page có index = 0 sẽ được chọn, chứ không phải là ẩn / hiện page gì cả.

--
Bạn xóa toàn bộ rác, khởi động lại máy tính xem
Mã:
'Tạo File clear_temp.bat
'Rồi Run as Administrator
Del /S /F /Q %temp%
Del /S /F /Q %Windir%\Temp

FOR /D %%p IN (%temp%\*) DO rmdir "%%p" /s /q

FOR /D %%p IN (%Windir%\Temp\*) DO rmdir "%%p" /s /q
 
Upvote 0
.Value = 0 'thì Page có index = 0 sẽ được chọn, chứ không phải là ẩn / hiện page gì cả.

--
Bạn xóa toàn bộ rác, khởi động lại máy tính xem
Mã:
'Tạo File clear_temp.bat
'Rồi Run as Administrator
Del /S /F /Q %temp%
Del /S /F /Q %Windir%\Temp

FOR /D %%p IN (%temp%\*) DO rmdir "%%p" /s /q

FOR /D %%p IN (%Windir%\Temp\*) DO rmdir "%%p" /s /q
file này chạy bằng notepad phải không bạn
 
Upvote 0
Tôi dùng Excel 2007 và cũng có hiện tượng giống như chủ topic.
Khi tôi vẽ thêm 1 control lên form, qua trình soạn thảo code chọn đối tượng bị lỗi Out of memory. Khi tôi xóa bớt 1 control thì file hoạt động bình thường.
=> Tôi đoán là số lượng control trên form của bạn đã đến giới hạn cho phép của phiên bản Excel mà bạn đang sử dụng.
 
Upvote 0
Sub UserForm_Initialize thì trên thanh Object
Máy của mình cũng bị tình trạng này, kiểm tra thì có tận hơn 1000 đối tượng, chạy debug thì sự kiện initialize cũng không có chạy, xóa đỡ mấy cái control to nhất trong form thì không còn tình trạng trê.
 
Upvote 0
Tôi dùng Excel 2013 32 bit + Windows 10 64 bit cũng bị. Tôi cũng nghi là do số lượng control vì thấy chúng nhiều quá. Hằng hà sa số.
 
Upvote 0
Tôi dùng Excel 2013 32 bit + Windows 10 64 bit cũng bị. Tôi cũng nghi là do số lượng control vì thấy chúng nhiều quá. Hằng hà sa số.
Không có tài liệu nào nói về vụ giới hạn số lượng controls này các bạn nhỉ. Thiết kế gần xong rồi giờ làm lại nản quá
 
Upvote 0
CSDL bạn đang xây dựng hình như chưa ổn lắm, khoan hẵn nói về Controls mà nên thiết kế lại các trang tính thì hơn.

Thậm chí tên trang tính cũng cần xem để rút gọn hơn, như
B01. . . B35
TB01. . . TB35

Danh sách đảng viên nhất thiết phải có mã (duy nhất)
 
Lần chỉnh sửa cuối:
Upvote 0
Upvote 0
Không có tài liệu nào nói về vụ giới hạn số lượng controls này các bạn nhỉ. Thiết kế gần xong rồi giờ làm lại nản quá
Bạn tạo 1 Form mới rồi Coppy các control qua sẽ được (cái này hồi nãy tui mới copy cái Page ah)

Chắc có lẽ nhiều control quá bạn bỏ bớt 1 số label control không cần thiêt
 
Lần chỉnh sửa cuối:
Upvote 0
Web KT

Bài viết mới nhất

Back
Top Bottom