Làm sao lấy được giá trị trong một Validation List? (1 người xem)

Liên hệ QC

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

Hoàng Trọng Nghĩa

Chuyên gia GPE
Thành viên BQT
Moderator
Tham gia
17/8/08
Bài viết
8,662
Được thích
16,720
Giới tính
Nam
Mình thử record macro để chọn giá trị trong một Validation, nhưng phần ghi này nó không ghi lại thao tác này, vậy làm sao mình có thể chọn một giá trị trong list bằng code?

Xin cám ơn.
 
Mình thử record macro để chọn giá trị trong một Validation, nhưng phần ghi này nó không ghi lại thao tác này, vậy làm sao mình có thể chọn một giá trị trong list bằng code?

Xin cám ơn.

Chưa hiểu rỏ ý anh (chỉ tò mò thôi chứ cao thủ như anh Nghĩa mà hỏi chắc có ý đồ gì sâu xa)
ví dụ list source của validation là :A,B,C,D,E,F
bây giờ anh muốn lấy giá trị "C" trong cái list source này hả? rồi gán trở lại cell đó luôn hả?
nếu đã biết nó là "C" rồi thì cứ gán vào đó sao lại phải chọn từ validation?
 
Upvote 0
Chưa hiểu rỏ ý anh (chỉ tò mò thôi chứ cao thủ như anh Nghĩa mà hỏi chắc có ý đồ gì sâu xa)
ví dụ list source của validation là :A,B,C,D,E,F
bây giờ anh muốn lấy giá trị "C" trong cái list source này hả? rồi gán trở lại cell đó luôn hả?
nếu đã biết nó là "C" rồi thì cứ gán vào đó sao lại phải chọn từ validation?
Không, đôi khi ta chỉ lấy index của nó thôi, ví dụ như index là 3 thì sẽ gán xuống sheet là C chẳng hạn.
 
Upvote 0
Mình thử record macro để chọn giá trị trong một Validation, nhưng phần ghi này nó không ghi lại thao tác này, vậy làm sao mình có thể chọn một giá trị trong list bằng code?

Xin cám ơn.

??????????? giả sử ô A1 được setting Data Validation ( list 1,2,3.4...) Ta có thể lấy giá trị thứ 2 của nó bang code sau:
Mã:
Sub GPE()
Dim rng As Range, tmpValue
On Error Resume Next
Set rng = Range(Range("A1").Validation.Formula1)
If Not rng Is Nothing Then
    tmpValue = WorksheetFunction.Transpose(rng.Value)
Else
    tmpValue = Split(Range("A1").Validation.Formula1, ",")
End If
    MsgBox tmpValue(1)
End Sub

Tổng quát ta nên xây dung hẳn 1 hàm getdataValidation !
 
Upvote 0
Mình thử record macro để chọn giá trị trong một Validation, nhưng phần ghi này nó không ghi lại thao tác này, vậy làm sao mình có thể chọn một giá trị trong list bằng code?

Xin cám ơn.

Lấy toàn bộ List nó ra cho vào mảng rồi muốn làm gì sau đó tùy thích. Ví dụ:
Mã:
Sub Test()
  Dim arr
  With Range("D1").Validation
    arr = Range(.Formula1).Value ''Lấy list cho vào mảng arr
    .Parent.Value = arr(2, 1)  ''Lấy phần tử của arr gán ngược xuống cell chứa validation
  End With
End Sub
 
Upvote 0
Thằng Validation có nhiều phương thức và thuộc tính, nhưng không thiết lập chọn được thì phải.
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:="=$C$2:$C$7"
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = ""
.InputMessage = ""
.ErrorMessage = ""
.ShowInput = True
.ShowError = True

Anh thử nghiên cứu gán cho đối tượng value cho Range đi.
 
Upvote 0
Web KT

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

Back
Top Bottom