khongaicanobody
Thành viên mới

- Tham gia
- 23/1/10
- Bài viết
- 38
- Được thích
- 5
Chào các anh,
Các anh xem giúp phần Data Validation trong file đính kèm giúp. Trong phần code ở đây chương trình không hề tham chiếu bất kỳ sheet nào trong workbook, nhưng sao máy vẫn hiểu là sheet2?
Giả sử phần With Range("D2").Validation, nếu mình muốn đưa kết quả sang sheet1 mà gõ vào With Sheet1. Range("D2").Validation, thì máy không cho kết quả như ý.
Ngoài ra muốn học kỹ hơn về phần tham chiếu thì nên học ở sách nào.
Cám ơn các anh.
Phần code như sau (Bài 18 trong sách VBA)
Sub DynamicValidation()
Dim ListRange As Range, ListString As String
Set ListRange = Range(Range("B2"), Range("B2").End(xlDown))
ListString = ListRange.Address
With Range("D2").Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:="=" & ListString
.IgnoreBlank = True
.InCellDropdown = True
.ShowInput = True
.ShowError = True
End With
Set ListRange = Nothing
Range("D2").Select
End Sub
Các anh xem giúp phần Data Validation trong file đính kèm giúp. Trong phần code ở đây chương trình không hề tham chiếu bất kỳ sheet nào trong workbook, nhưng sao máy vẫn hiểu là sheet2?
Giả sử phần With Range("D2").Validation, nếu mình muốn đưa kết quả sang sheet1 mà gõ vào With Sheet1. Range("D2").Validation, thì máy không cho kết quả như ý.
Ngoài ra muốn học kỹ hơn về phần tham chiếu thì nên học ở sách nào.
Cám ơn các anh.
Phần code như sau (Bài 18 trong sách VBA)
Sub DynamicValidation()
Dim ListRange As Range, ListString As String
Set ListRange = Range(Range("B2"), Range("B2").End(xlDown))
ListString = ListRange.Address
With Range("D2").Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:="=" & ListString
.IgnoreBlank = True
.InCellDropdown = True
.ShowInput = True
.ShowError = True
End With
Set ListRange = Nothing
Range("D2").Select
End Sub