Tạo validation không bị trống dòng (1 người xem)

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

minhhangg

Thành viên hoạt động
Tham gia
4/5/11
Bài viết
197
Được thích
61
Yêu cầu có trong file xin anh,chị hướng dẫn giúp, em cảm ơn nhiều ạ.
 
Lần chỉnh sửa cuối:
Với ý kiến của NDU và QuangHai, bạn thử dùng macro sau để tạo Validation cho 1 ô với 1 vùng dữ liệu không liên tục:
PHP:
Sub CreateValidation()
Dim r1 As Range, r2 As Range, r3 As Range, wb As Workbook, sh As Worksheet
With Application
    On Error Resume Next
        Set r1 = .InputBox(Prompt:="Chon vung chua du lieu tao danh sach", Title:="Get Data", Type:=8)
        Set r2 = .InputBox(Prompt:="Chon o tao Validation", Title:="Get Data", Type:=8)
        Set r2 = r2(1)
        Set r3 = .InputBox(Prompt:="Chon vung chua danh sach cung cap cho Validation", Title:="Get Data", Type:=8)
    On Error GoTo 0
    If r1 Is Nothing Or r2 Is Nothing Or r3 Is Nothing Then Exit Sub
    r1.Copy r3(1)
    Set r3 = r3.Resize(r1.Rows.Count, 1)
    r3.RemoveDuplicates Columns:=1
    r3.Sort key1:=r3(1)
    Set r3 = r3.Resize(.WorksheetFunction.CountA(r3), 1)
    r3.Name = "lstVal"
    On Error Resume Next
    r2.Validation.Delete
    On Error GoTo 0
    r2.Validation.Add Type:=xlValidateList, Formula1:="=lstVal"
    Set r3 = Nothing
    Set r2 = Nothing
    Set r1 = Nothing
End With
End Sub

macro thực hiện như sau:
1. Bạn chọn vùng chứa dữ liệu nguồn cho validation
2. chọn ô tạo validation
3. chọn ô chứa dữ liệu kết quả sau khi xóa các khoảng trống để tạo list cho validation (tốt nhất là tạo trên 1 sheet trống để có gì thì dễ điều chỉnh về sau)
 
Yêu cầu có trong file xin anh,chị hướng dẫn giúp, em cảm ơn nhiều ạ.

Bài này mình nghĩ nên dùng code này, Hang xem thử coi thế nào

PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim tim
If Target.Column > 6 And Target.Column < 30 Then
   Set tim = [BP:BP].Find(Target)
   If tim Is Nothing Then
      Target.Clear
      MsgBox "Nhap sai dang du lieu"
      Target.Select
   End If
End If
End Sub
 
Lần chỉnh sửa cuối:

File đính kèm

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

Back
Top Bottom