Hỏi về Combobox

Liên hệ QC

mymichau

Thành viên hoạt động
Tham gia
28/11/06
Bài viết
172
Được thích
114
Tôi có dùng đoạn code cho Combobox sau:
Option Explicit
Private Sub ComboBox1_Change()
ActiveCell.Value = ComboBox1
ActiveCell.Offset(0, 1).Select
ComboBox1 = "" ( đoạn thêm vào để combobox trống )
End Sub
Lúc không có đoạn code thêm vào, thì sau khi Enter cell được chọn sẽ sang phải 1 ô, nhưng sau khi được thêm vào ComboBox1 = "", ô được chọn lại nhảy sang phải 2 ô. Vậy sửa như thế nào để cell được chọn vẫn sang phải 1 ô mà không bỏ ComboBox1 = "". Xin cám ơn.
 
Bạn dùng code này

Mã:
[color=darkblue]Private[/color] [color=darkblue]Sub[/color] ComboBox1_Change()
[color=darkblue]Dim[/color] tmp
[color=darkblue]Static[/color] calling_from_event [color=darkblue]As[/color] [color=darkblue]Boolean[/color]
[color=darkblue]If[/color] [color=darkblue]Not[/color] calling_from_event [color=darkblue]Then[/color]
    calling_from_event = [color=darkblue]True[/color]
    tmp = ComboBox1
    ActiveCell.Value = tmp
    ActiveCell.Offset(0, 1).Select
    ComboBox1 = ""
[color=darkblue]Else[/color]
    calling_from_event = [color=darkblue]False[/color]
[color=darkblue]End[/color] [color=darkblue]If[/color]
End [color=darkblue]Sub[/color]
Thân.
 
À, tức là cái chỗ này gọi cái event_change 2 lần, nên nó mới nhảy kỳ cục vậy phải hôg bác SoiBien
 
vumian đã viết:
À, tức là cái chỗ này gọi cái event_change 2 lần, nên nó mới nhảy kỳ cục vậy phải hôg bác SoiBien

Đúng rồi bạn, bởi vậy phải dùng thêm biến calling_from_event để ngăn chặn.
 
Khi bạn dùng sự kiện ComboBox_Change(), bạn nhập giá trị vào ComboBox thì nó thay đổi giá trị 1 lần và dịch chuyển sang phải 1 ô. Khi bạn dùng code để xóa giá trị trong ComboBox đó đi thì giá trị bị thay đổi tiếp nên nó tiếp tục dịch chuyển sang phải 1 ô nữa. Theo tôi bạn vẫn dùng được code trên và đưa nó vào sự kiện ComboBox_AfterUpdate() thì OK.
 
Web KT
Back
Top Bottom