Hiểu thêm về Validation.

Liên hệ QC
Status
Không mở trả lời sau này.

Peter_pan

đang tìm vòng tay ấm...
Tham gia
14/6/06
Bài viết
104
Được thích
3,370
Nghề nghiệp
không có gì ra hồn cả!
Giả sử bạn có 1 danh sách từ A1:A120, trong đó bạn nhập các tiểu khoản của các tài khoản.

Td : Ở A1 là 111.1 - Tiền mặt VN
_____ A2 là 111.2 - Tiền mặt ngoại tệ....
_____ A4 là 112.1 - Tiền gởi VN ...
_____ A6 là 112.3 - Vàng bạc, kim loại quý...

Bây giờ bạn hãy đặt tên cho từng mảng theo các tài khoản từ 111.1 đến 111.3 là TK111, 112.1 đến 112.3 là TK112...cho đến hết.

Tại cột B1 : B50 , bạn nhập danh sách tên các tài khoản vừa đặt TK111, TK112, TK113, TK121..., nhập xong bạn đặt tên cho dãy này là TK.

Tôi thí dụ bạn muốn đặt một danh sách các tài khoản cho các Cell tại cột D, từ D2 đến D200 và kèm theo cột E đó là danh sách các tiểu khoản phụ thuộc các tài khoản tại cột D, td nếu ở D2 là TK111 thì E2 sẽ có 1 DS từ 111.1 - Tiền mặt VN đến 111.3 - Vàng bạc, kim loại quý.

Bạn sẽ làm như sau :
-Tại D2 bạn vào Data/Validation/Allow, chọn List, Source của bạn là =TK.
-Tại E2 bạn cũng vào Data/Validation/Allow/List, Source của bạn là =INDIRECT(D2) .
-Từ D2 và E2 bạn rê chuột đến D200 và E200 để áp dụng thuộc tính Validation này cho vùng chọn.
 
Handung107 post

Phần 2:

Nếu ở cột B2 : B50 bạn muốn nhập DS các tài khoản có khoảng cách ở giữa cho nó đẹp một chút bạn làm như sau:
-Đặt tên cho dãy TK 111, TK 112..., cũng TK
-Tại D2, đặt Validation / Source =TK, bạn sẽ được 1 List gồm TK 111, TK 112,....
-Tại E2, để hiển thị được danh sách phụ thuộc ấy bạn phải sửa lại đôi chút,(vì khi đặt tên tại NameBox cho vùng từ 111.1 đến 111.3 bạn chỉ có thể đặt tên là TK111..., không có khoảng cách). Bạn sửa như sau : Validation/Source =INDIRECT(SUBSTITUTE(D2," ",""))

Phần 3 :

-Tại NameBox, bạn cũng không thể đặt tên vùng là một số, td 111 cho vùng từ 111.1 đến 111.3, nhưng bạn lại muốn tại cột D chỉ hiện ra danh sách 111, 112,113... không có chữ TK kèm theo.

-Bạn cũng đặt tên cho các vùng giống như ở phần 1 và tại cột B bạn nhập danh sách hiển thị cho cột D là 111, 112, 113...Cũng đặt tên cho dãy này là TK.

-Tại cột C, nếu ở B2 là 111, thì C2 là tên tương ứng đặt trong NameBox td TK111, nếu B3 là 112 thì C3 là TK112...Bạn đặt tên cho mảng B2:C50 là DMTK.
Như vậy khi đặt Source cho Validation tại D2 =TK, thì nó sẽ cho bạn List gồm 111, 112,....

-Tại E2 bạn sẽ đặt Source là : = INDIRECT(VLOOKUP(D2,DMTK,2,0)), bạn sẽ được List như ở các phần trên.
 
Handung107 post

Phần 4:

Giả sử tại cột A, bạn có 1 danh sách từ A2:A21 gồm các mã KH, tuy vậy, bạn chỉ muốn trong danh sách DropDowns của Validation xuất hiện những Mã KH nào được bạn lựa chọn. Bạn hãy làm như sau, để tiện theo dõi, các bạn hãy mở Excel ra và cùng làm nhé :

1- Chọn Sheet 1 và đổi tên Sheet thành DM. Nhập Mã KH vào cột A, từ A2 : A21.

2- Tại B2:B21, bạn đặt các CheckBox. Bạn vào View/Toolbars/Forms. Trên thanh công cụ Forms, bạn chọn Checkbox. Bạn lần lượt đặt các checkbox vào từng Cell B2 đến B21. Nhấp chuột phải vào các Checkbox và chọn Format Control/Control/Value, chọn Unchecked.Tại Cell link, bạn nhập B2 cho checkbox đặt tại B2. Tương tự cho đến Cell B21.

3- Tại D2 bạn nhập công thức : =IF(B2=TRUE,ROW(),"")

4- Tại C2 bạn nhập công thức: {=IF(ISNUMBER(SMALL(IF($D$2:$D$21="","",ROW($D$2:$D $21)),ROW(1:1))),INDIRECT("A"&SMALL(IF($D$2:$D$21= "","",ROW($D$2:$D$21)),ROW(1:1))),"")}.

--->Đây là công thức mảng nên bạn phải kết thúc bằng Ctrl+Shift+Enter. Để giải thích công thức này bạn hãy xem lại các bài về công thức mảng với các hàm Indirect, Small và Row. Bạn kéo rê công thức từ C2, D2 đến C21, D21.

5-Bạn vào Insert/Name/Define để đặt tên cho mảng MaKH. Tại hộp Refers to Bạn nhập công thức sau : =OFFSET(DM!$C$2,0,0,COUNTA(DM!$C$2:$C$21)-COUNTBLANK(DM!$C$2:$C$21),1).

6-Bây giờ bạn có thể đặt Validation vào bất kỳ một dãy nào trong cùng 1 Sheet hay ở những Sheet khác trong Workbook. Bạn chỉ cần chọn dãy đó và vào Data/Validation, trong phần Source bạn nhập =MaKH.

7- Bạn hãy thử lại kết quả của mình bằng cách chọn ở hộp Checkbox. Chỉ những mã KH nào được chọn (có kết quả là True), mới có tên trong danh sách trong Validation.

Hy vọng các bạn sẽ cảm thấy thích trước những tính năng của Validation!
 
Handung107 post

Phần 5.1:

Chúng ta lại qua một dạng khác nữa của Validation. Cũng tại Sheet DM như tôi đã giới thiệu ở trên. Tại cột A1 bạn nhập tên cột là Mã KH, B1Tên KH. Từ A2:A21 nhập các Mã KHB2:B21 nhập tên các KH. Đặt tên cho dãy B2:B21 là TenKH.

Chúng ta sẽ đặt Data/Validation cho dãy B2:B12 (côt 2), tại 1 Sheet khác được đặt tên là DS. Phần Source của Validation bạn nhập vào =TenKH

Bạn hãy Click chuột phải lên Sheet Tab tại Sheet DS, bạn chọn View Code (hoặc nhấn Alt+F11)để vào cửa sổ Microsoft Visual Basic. Bạn Copy đoạn mã sau và Paste vào cưa sổ VBA vừa được mở. Những phần được sửa lại cho phù hợp với dữ liệu của các bạn sẽ là :

- Target.Column = 2 vì đó là cột B.

- WorksheetRange thay đổi tùy theo tên các bạn đặt cho Sheet nguồn và dãy.

-Taget.Value tại Worksheet DM và cột A, bắt đầu là Cell A1
Mã:
[COLOR=darkslateblue][B]Private Sub[/B][/COLOR] Worksheet_Change([COLOR=darkslateblue][B]ByVal[/B][/COLOR] Target [COLOR=darkslateblue][B]As[/B][/COLOR] Range)
[COLOR=darkslateblue][B]If[/B][/COLOR] Target.Cells.Count > 1 [B]Then[/B] Exit Sub
[B]If[/B] Target.Column = 2 [B][COLOR=darkslateblue]Then[/COLOR][/B]
[B]If[/B] Target.Value = "" [COLOR=darkslateblue][B]Then[/B][/COLOR] Exit Sub
Application.EnableEvents = [B][COLOR=navy]False[/COLOR][/B]
Target.Value = Worksheets("DM").Range("A1") _
.Offset(Application.WorksheetFunction _
.Match(Target.Value, Worksheets("DM").Range("TenKH"), 0), 0)
Application.EnableEvents = [COLOR=navy][B]True[/B][/COLOR]
[B][COLOR=navy]End If[/COLOR][/B]
[B][COLOR=navy]End Sub[/COLOR][/B]

Bây giờ mặc dù bạn chọn từ DS Validation Tên của KH, nhưng nó sẽ hiện ra MãKH chứ không phải tên nữa. Hẹn các bạn lần sau.
 
Chỉnh sửa lần cuối bởi điều hành viên:
Handung107 post

Phần 5.2:

Chúng ta sẽ dùng ý tưởng trong phần 5.1 (trong Validation là DS Tên KH, nhưng khi Click vào Tên thì Mã KH lại hiển thị ). Bây giờ tôi muốn trong DS Validation có cả 2 cột : MaKH và Tên KH. Tôi sẽ dùng Source Code của phần 5.1 là :
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Cells.Count > 1 Then Exit Sub
If Target.Column = 2 Then
If
Target.Value = "" Then Exit Sub
Application.EnableEvents = False
Target.Value = Worksheets("DM").Range("A1") _
.Offset(Application.WorksheetFunction _
.Match(Target.Value, Worksheets("DM").Range("TenKH"), 0), 0)
Application.EnableEvents = True
End If

End Sub

-Target.Column = 2 (cột B) là cột nguồn sẽ được thể hiện trong DS của Validation. Như vậy, nếu ta dùng cột B để ghép dữ liệu của 2, 3 cột tuỳ ý chúng ta sẽ có DS trong Validation thể hiện cả 2, 3 cột chúng ta ghép lại.

-Tại Cell B2 ta chỉ cần đặt công thức =A2&" - "&C2&" - "D2 (Cột AMã KH, cột C Tên KH, cột D là mã số thuế, hoặc bạn có thể lấy bất cứ thông tin tại bất cứ cột nào muốn ghép ) và kéo rê công thức xuống các Cell bên dưới. Đặt tên cho dãy B2:BxDSsửa lại trong Range("TenKH") bằng "DS".

-Nếu bạn không thích ghép dữ liệu tại cột B, bạn có thể chọn bất cứ cột nào khác, và sửa lại Target.Column = số thứ tự của cột.

-Bây giờ bạn đã có 1 DS trong Validation thể hiện cả MaKH, TenKH..nhưng thể hiện trên Active Cell sẽ là cột A, nếu bạn muốn thay đổi là cột khác thì sửa trong Range("A1")Range("C1") hay D1...tuỳ thích.

-DS Validation này sẽ cần chiều rộng của cột khá lớn, nếu Cell chỉ thể hiện Mã KH sẽ làm cho bảng DL của chúng ta không đẹp. Hẹn các bạn lần sau, chúng ta sẽ có cách khắc phục vấn đề này.
 
Lần chỉnh sửa cuối:
TuanVNUNI post

Phần 5.3:

Các bạn dùng Validation để biết nhiều thông tin chi tiết về một mã thì theo I làm như sau:

-Thông thường trong "danh mục" cột 1, cột 2 Tên, các cột còn lại để thể hiện những đặc điểm của mã.

-Bạn tạo thêm 2 cột ở cuối danh mục: cột 1 Mã, cột 2 là Thông tin. Ở cột mã bạn dùng tham chiếu =A2 để nhận mã gốc ở cột đầu tiên, cột Thông tin dùng =C2 & " " & D2 ....bạn muốn thông tin ở cột nào thì & với cột đó. Sau đó bạn dùng 2 cột cuối cùng này cho Validation.

-Để có được 2 hay nhiều cột trong Validation. Đầu tiên bạn đặt tên một cột VD là "Vung" sau đó thực Validation, sau khi xong bạn chọn lại vùng thành dạng 2 cột (VD E:F) đặt tên cũng là "Vung".

-Nút chọn của Validation thuộc họ "Combo Box". Trong bất cứ một nút chọn nào giống như vậy ở bất kỳ một phần mềm nào bạn dùng ALT+ Arrow down hoặc F4 là mở để chọn.

Nếu không dùng VBA I cũng chỉ làm được như vậy, bạn nào có phương án tốt xin đưa ra mọi người học hỏi.
 
Handung107 post

Phần 6: Dynamic Range

Tôi không biết nên dịch từ Dynamic Range thế nào cho sát nghĩa, nên đành sử dụng từ Dynamic Range vậy.

TD: tại Sheet DSach các bạn đặt tên cho dãy A1:A10 là DSach, nhưng khi dữ liệu của bạn thay đổi, kéo dài thêm đến A11, A12..., mỗi lần như vậy, bạn lại phải vào Insert/Name/Define, nếu không những dữ liệu nào có liên quan đến DSach sẽ không được cập nhật.

Vì vậy chúng ta sẽ dùng Dynamic Range (tạm dịch là DS động) cho dữ liệu tại cột A. Bạn hãy vào Insert/Name/Define.
- Tại hộp Name in Workbook, bạn đặt DSach.
- Tại hộp Refers to bạn gõ vào công thức : =OFFSET(DSach!$A$1,0,0,COUNTA(DSach!A:A),1).

Nếu bạn muốn danh sách này tự động sắp xếp theo thứ tự tăng dần, bạn hãy đặt source code sau vào cửa sổ VBA của Sheet DSach:
Private Sub Worksheet_Change(ByVal Target As Range)
Columns(1).Sort Key1:=Range("A1"), Order1:=xlAscending, _
Header:=xlGuess, OrderCustom:=1, _
MatchCase:=False, Orientation:=xlTopToBottom
End Sub



Bây giờ bạn có thể thoải mái đặt Validation tại 1 cell bất kỳ trong cùng Sheet hay bất kỳ Sheet nào trong Workbook với Source cho Validation này là DSach.

Chúc bạn thành công.
 
Handung107 post

Phần 6.2: hàm VLOOKUP trong Database động

Các bạn đã được giới thiệu về Dynamic Range, nghĩa là DS động với 1 cột dữ liệu, nhưng với Database có 4, 5 cột dữ liệu và dùng hàm VLOOKUP thì sao ?

Tôi giả sử chúng ta có DS động tại cột A như bài trên, nhưng A1 là tiêu đề cột.

Td : MaKH, từ A2 trở đi, chúng ta mới nhập dữ liệu.​

Chúng ta sửa lại 1 chút trong hộp Refers to của Insert/Name/Define là : =OFFSET(DSach!$A$1,1,0,COUNTA(DSach!$A:$A)-1,1).

Database của chúng ta sẽ gồm cột B Tên KH, cột C Địa chỉ KH, cột D là Mã số thuế.

Chúng ta sẽ đặt tên cho Vùng gồm 4 cột này là Database.

Tại hộp Refers to bạn nhập công thức sau :
=OFFSET(DSach!$A$1,1,0,COUNTA(DSach!$A:$A)-1,COUNTA(DSach!$1:$1)).

Bây giờ, bạn đặt Validation để chọn MãKH, và dùng hàm VLOOKUP để lấy thông tin TênKH, Địa chỉ KH, Mã số thuế mà không lo phải đặt lại tên cho CSDL khi dữ liệu nhiều hơn số hàng mà chúng ta đã dùng để đặt tên cho mảng.
 
Lần chỉnh sửa cuối:
Handung107 post

Phần 7: Bảo vệ dữ liệu trong Excel bằng Validation

Có một cách bảo vệ dữ liệu để người khác không được đụng vào mà chúng ta tận dụng khả năng có sẵn của Data / Validation.
- Chọn vùng dữ liệu bạn muốn bảo vệ.
- Chọn menu Data/ Validation.
- Trong thẻ Settings---> Allow là Text length, Data chọn between, Minimum---> bạn đánh giá trị chiều dài tối thiểu của chuỗi (ví dụ là 10000), ô Maximum---> nhập giá trị chiều dài tối đa của chuỗi (ví dụ 50000).
- Chọn tab Error Alert.
- Trong Style---> chọn Stop, ô Title--->bạn hãy nhập tiêu đề của ô thông báo (ví dụ CAM!), ô Error message--->bạn nhập nội dung của ô thông báo (ví dụ: Ban khong duoc thay doi du lieu cua nguoi khac).
- Chọn Check box : Show error alert after invalid data is entered.

Sau cùng, để xoá những vùng dữ liệu đã được đặt Validation-->bạn hãy chọn Clear All.

Thật thú vị, phải không các bạn ? Vâng, Excel luôn đem đến cho chúng ta những bất ngờ nếu chúng ta biết khám phá!
 
Handung107 post

Phần 8: Kiểm tra việc nhập dữ liệu bằng Data Validation

Ở trên, chúng ta chỉ mới nói về chức năng tạo những DS của Validation, tuy vậy, Validation còn một chức năng rất quan trọng, mà các bạn ít để ý đến, đó là giúp chúng ta kiểm tra việc nhập liệu, thông báo cho chúng ta biết nếu chúng ta nhập dữ liệu không đúng.

Bạn nghĩ sao, nếu như bạn nhập một mã hàng không có tên trong DS các mặt hàng, và Validation sẽ thông báo cho bạn ?

Hoặc nếu khi bạn đặt một mã hàng mới cho một mặt hàng mới mà bị trùng lặp với cái đã có ?

Sau đây là một số thí dụ về sử dụng chức năng này của Validation :

Trong thẻ Setting-->Allow--->bạn chọn Custom, hộp Data-->bạn nhập công thức, xem như ta bắt đầu từ Cell A1

datavalidation.jpg


1/Không cho phép nhập có khoảng cách:

=LEN(A1)=LEN(SUBSTITUTE(A1," ","")) Hay : =ISERROR(FIND(" ",A1))

2/Không cho phép nhập có khoảng cách ở đầu hay cuối dữ liệu:

=LEN(A1)=LEN(TRIM(A1))

3/Không cho nhập toàn chữ hoa :

=NOT(EXACT(A1,UPPER(A1)))

4/Cho phép nhập vào Cell C1 dữ liệu tìm thấy trong DS A1:A5:

=NOT(ISERROR(MATCH(C1,$A$1:$A$5,0)))

5/Cho phép lựa chọn 2 trường hợp:

=OR(A1=1,A1=2)

6/Cho phép nhập giá trị hoặc trong khoảng 1 đến 500, hoặc trong khoảng 700 đến 799:

=OR(AND(A1>=1,A1<=500),AND(A1>=700,A1<=799))

7/Cho phép nhập giá trị duy nhất trong một cột:

=COUNTIF($A$1:A1,A1)=1

8/Cho phép nhập giá trị duy nhất vào một dãy:

=COUNTIF($A$1:$A$10,"="&A1)=1 Hay =COUNTIF(tablename,A1)=1 (nếu dãy A1:A10 được đặt tên)

9/Cho phép nhập số liệu đến khi tổng của chúng =500

=SUM($A$1:$A$10)<=500

10/Không cho phép nhập vào ngày cuối tuần:

=AND(WEEKDAY(A1)<>1,WEEKDAY(A1)<>7)

11/Giới hạn nhập 25 ký tự:

=LEN(A1)<=25

Trên đây chỉ là một vài thí dụ nhỏ, còn nhiều ý tưởng phong phú hơn, xin nhường cho các bạn tự khám phá!
 
Chỉnh sửa lần cuối bởi điều hành viên:
Phần 8.2: Hiển thị thông báo bằng cách nhờ thẻ Error Alert

Step1: Bạn phải chọn dấu kiểm tại Show Error Alert after invalid data is entered

Có 3 kiểu tại hộp Style :

1/Stop: ngưng ngay khi dữ liệu nhập được kiểm tra là không hợp lệ.
2/Warning: cảnh cáo, nhắc nhở.
3/Information: chỉ là câu thông báo, nếu ta phớt lờ, dữ liệu vẫn có thể được nhập vào.

Step2: Tại hộp Title--> bạn hãy đặt cho nó cái tựa.
_________Td : Chú ý nhập trùng dữ liệu chẳng hạn.

Step3: Tại Error Message--->bạn hãy soạn thông điệp nhắc nhở.
_________Td : Dữ liệu bạn vừa nhập đã có rồi. Hãy chọn mã MH khác.

Bây giờ, bạn có thể yên tâm khi nhập các dữ liệu, vì đã có những lời cảnh báo, nhắc nhở bạn nếu bạn vô ý nhập sai.
 
Handung107 post

Các câu hỏi về validation:

Q1: Trong trường hợp mở rộng, nếu bảng có nhiều cột và để tất cả dữ liệu của bảng sort theo cột tự động sort theo cột đầu tiên thì làm thế nào?




A1: Bạn sửa lại đoạn mã ở bài #7 như sau:
Private Sub Worksheet_Change(ByVal Target As Range)

Worksheets("TenSheet").Range("Tenday").Sort Key1:=Range("A2"), Order1:=xlAscending, _

Header:=xlGuess, OrderCustom:=1, _
MatchCase:=False, Orientation:=xlTopToBottom​
End Sub


(Cột A là cột muốn sắp xếp, hàng 2 là hàng bắt đầu nhập liệu, hàng 1 là tiêu đề).​

Đoạn mã này có 1 khuyết điểm là khi ta vừa nhập liệu vào cột A xong là dữ liệu bắt đầu sort liền, những Cell ở cột liên quan sẽ trống. Tôi đã muốn sửa lại sao cho nhập toàn bộ dữ liệu vào các cột xong, mới bắt đầu sự sắp xếp, nhưng chưa sửa được. Bạn nào có cao kiến gì, xin góp ý.​

A2:

Trên Sheet DSKH, tôi có các cột đã được đặt tên như sau : Cột A (Ten), cột B (DC), cột C (MST), và nhập liệu từ hàng thứ 2. Mảng (Ten,DC,MST) có tên là DS. Các dãy có thể là dãy động, nhưng bạn phải đặt cho mảng 1 số n =1500 chẳng hạn cho sự sắp xếp có thứ tự.

Tôi sửa lại đoạn mã như sau :

x = 2
y = 1
n = 1500
- x, y:là toạ độ ô đầu tiên
___Td : ô đầu tiên là C5 thì x=5, y=3
- n : là số dòng tối đa mà trong DS bạn muốn sắp xếp

Mã:
[COLOR=navy]Dim[/COLOR] flag [COLOR=navy]As Boolean
[/COLOR][COLOR=navy]Dim[/COLOR] x [COLOR=navy]As Integer
[/COLOR][COLOR=navy]Dim[/COLOR] y [COLOR=navy]As Integer[/COLOR]
 
flag = [COLOR=navy]True
[/COLOR][COLOR=navy]For[/COLOR] i = 0 [COLOR=navy]To[/COLOR] n
[COLOR=navy]If[/COLOR] Worksheets("DSKH").Cells(x + i, y) = "" [COLOR=navy]Or[/COLOR] Worksheets("DSKH").Cells(x + i, y + 1) = "" Or Worksheets("DSKH").Cells(x + i, y + 2) = "" [COLOR=navy]Then
[/COLOR][COLOR=navy]If Not[/COLOR] (Worksheets("DSKH").Cells(x + i, y) = "" [COLOR=navy]And[/COLOR] Worksheets("DSKH").Cells(x + i, y + 1) = "" And Worksheets("DSKH").Cells(x + i, y + 2) = "") [COLOR=navy]Then
[/COLOR]flag = [COLOR=navy]False
[/COLOR][COLOR=navy]End If
End If[/COLOR]
[COLOR=navy]Next[/COLOR] i
[COLOR=navy]If[/COLOR] flag = [COLOR=navy]True Then
[/COLOR]Worksheets("DSKH").Range("DS").Sort key1:=Range("A2")
[COLOR=navy]End If
End Sub
[/COLOR]

Như vậy, dữ liệu sẽ chỉ được sắp xếp sau khi bạn nhập đủ 3 cột. Vì tôi cũng chỉ biết sơ về VBA, nên cũng hy vọng qua vấn đề này được hiểu thêm những phương cách khác hay hơn từ các chuyên gia về VBA của diễn đàn




 
Chỉnh sửa lần cuối bởi điều hành viên:
Handung107 post

Validation tip


Giả sử bạn có 1 DS tại Sheet1 từ B1:B10, và bạn muốn đặt Data / Validation tại Sheet 2, nếu bạn không đặt cho dãy B1:B10 một cái tên thì chắc chắn bạn không thể thực hiện được. Hộp Source của Data / Validation không bao giờ cho phép bạn nhập :
=Sheet1!B1:B10.

Nếu bạn không đặt tên cho dãy trên, bạn có thể khắc phục bằng cách dùng hàm INDIRECT. Bạn hãy gõ : =INDIRECT("Sheet1!B1:B10") và Excel sẽ chấp nhận nó để bạn có thể đặt Data / Validation bình thường như bạn đã đặt tên cho dãy này vậy.

Bạn hãy thử xem...
 
File download

Sau đây là file hướng dẫn về validation của chị handung107:

validation.download
 
Từ Dynamic Range đến Dynamic Validation

Giới thiệu cùng các bạn thêm 1 ví dụ ứng dụng của Dynamic Range trong Validation, có thể sử dụng để chọn mã hàng theo nhóm nào đó mà chưa cần đến hỗ trợ của VBA).
(Trích bài của anh Adam)
 

File đính kèm

  • Dynamic Validation.rar
    4.9 KB · Đọc: 3,179
Status
Không mở trả lời sau này.
Web KT

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

Back
Top Bottom