Lỗi khi chạy thủ tục ShowForm (1 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

mhung12005

Thành viên chậm chạm
Tham gia
20/7/11
Bài viết
1,598
Được thích
1,261
Nghề nghiệp
Đâu có việc thì làm
Chào các anh chị !

Tôi tham khảo file "FilterAndSort_2DArray_02" của sư phụ NDU
Khi file là excel 2003 thì chạy tốt. Nhưng khi chuyển sang excel 2010 thì báo lỗi khi chạy thủ tục ShowForm. Loay hoay mãi mà tìm không ra. Anh chị nào biết xin chỉ giúp. Xin cảm ơn.
 

File đính kèm

Anh cũng dùng Excel 2003, em xem thử coi nó có hiện Form được hay không?
 

File đính kèm

Upvote 0
Chào các anh chị !

Tôi tham khảo file "FilterAndSort_2DArray_02" của sư phụ NDU
Khi file là excel 2003 thì chạy tốt. Nhưng khi chuyển sang excel 2010 thì báo lỗi khi chạy thủ tục ShowForm. Loay hoay mãi mà tìm không ra. Anh chị nào biết xin chỉ giúp. Xin cảm ơn.

Trong Private Sub UserForm_Initialize() và trong Private Sub lstResult_DblClick(ByVal Cancel As MSForms.ReturnBoolean) có dòng:

Mã:
SpinButton1.Value = [B][COLOR=#ff0000]Cells.Rows.Count[/COLOR][/B] + 1 - ActiveCell.Row

Trong 2003 thì Cells.Rows.Count = 65536 nhưng trong 2007 và chắc cả 2010 thì Cells.Rows.Count = 1048576

Lỗi là vì SpinButton1.Value không chấp nhận giá trị cực lớn như thế. Mà bạn cũng đâu cần giá trị lớn như thế.
-----------
Tôi không hiểu được dụng ý thiết lập SpinButton1.Value với giá trị lớn như thế.

Tôi đề nghị sửa 3 chỗ thành:

Mã:
Private Sub UserForm_Initialize()
...
    ' SpinButton1.Value = Cells.Rows.Count + 1 - ActiveCell.Row
    SpinButton1.Value = ActiveCell.Row

Mã:
Private Sub lstResult_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
...
    ' SpinButton1.Value = Cells.Rows.Count + 1 - ActiveCell.Row
    SpinButton1.Value = ActiveCell.Row

Mã:
Private Sub SpinButton1_Change()
...
    ' Cells(1, ActiveCell.Column).Offset(SpinButton1.Value).Activate
        Cells(SpinButton1.Value, ActiveCell.Column).Activate
 
Upvote 0

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

Back
Top Bottom