Điều kiện để RefEdit chỉ cho phép chọn các Ô trong một vùng??? (1 người xem)

Liên hệ QC

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

quangthanhdu

Thành viên chính thức
Tham gia
21/5/10
Bài viết
51
Được thích
4
Mình muốn tạo một điều kiện cho RefEdit có tên ABC trong Form, chỉ cho phép chọn các Ô trong phạm vi từ Ô B5 đến Ô B20 để nhập liệu. Nếu RefEdit "ABC" chọn Ô khác thì sẽ báo lỗi....
Mong được giúp đỡ và học hỏi!!!
 

File đính kèm

Bạn hãy áp dụng đoạn code sau:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim i%
For i = 5 To 20
If Target.Address = "$B$" & i Then
Exit Sub
End If
Next
Target.Value = ""
MsgBox "Chi cho phep chon tu B5 den B20"
Range("B5").Activate
End Sub
 

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
Bạn thử xài macro như dưới đây

PHP:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
 If Intersect(Target, [B5:B20]) Is Nothing Then
    MsgBox "Only [B5:B20]"
 Else
    Exit Sub
 End If
End Sub
 
Upvote 0
Mình muốn tạo một điều kiện cho RefEdit có tên ABC trong Form, chỉ cho phép chọn các Ô trong phạm vi từ Ô B5 đến Ô B20 để nhập liệu. Nếu RefEdit "ABC" chọn Ô khác thì sẽ báo lỗi....
Mong được giúp đỡ và học hỏi!!!

Với code của ChanhTQ thì tất nhiên nếu "chọn sai" thì ta thấy MsgBox nhưng vẫn nhập dữ liệu được xuống Sheet như thường. Không tin thì cứ "chọn sai" rồi nhấn nút "Nhap" thử xem.
Nếu là tôi thì tôi thử làm như sau:

Mã:
Private Sub ABC_Change()
    OK.Enabled = Not Intersect([B5:B20], Range(ABC.text)) Is Nothing
End Sub
Private Sub OK_Click()
    Range(Me.ABC.text).Select
    ActiveCell.Value = "123456789"
End Sub

Private Sub UserForm_Activate()
    ABC.Locked = True
    ABC.text = Application.ActiveCell.Address
    ABC_Change
End Sub

Dòng Target.Value = "" trong code của bạn xuanha tôi thấy không hay lắm. Táy máy, chân tay run run mà click nhầm (nhầm lẫn là chuyện thường sẩy ra) vào các ô dữ liệu quan trọng (chắc gì người ta chỉ có vài dữ liệu như trong ví dụ?) thì xóa để rồi mất công khôi phục?

Ngoài ra Worksheet_SelectionChange không phải là chỗ hay. Trong bảng tính thực người ta còn nhiều việc phải làm trên Sheet. Có thể những công việc đó cần tới Worksheet_SelectionChange.

Thêm nữa, với hiện trạng hiện nay thì khi người ta không làm việc với RefEdit, tức UserForm không hiển thị, thì Worksheet_SelectionChange vẫn "cần cù" thực hiện mỗi khi click vào mỗi ô để nhập liệu.

Tất nhiên lựa chọn là quyền của người hỏi. Tôi ý kiến như thế chỉ với mục đích để tham khảo. Tôi không khăng khăng là mình ̣đúng, là cách của mình hay. Nói rõ thế để tránh hiểu lầm.
 
Upvote 0
Web KT

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

Back
Top Bottom