Code VBA nhận giá trị trong danh sách

  • Thread starter vand
  • Ngày gửi
V

vand

Guest
8/5/08
4
0
0
ha noi
Tôi muốn thay đoạn code:
if cell(a1)="a" or cell(a1)="b" or cell(a1)="c" or..... then
cell(a2)="OK"
else
cell(a2)="No"
endif

bằng code rút gọn rằng nếu giá trị cell(a1) thuộc danh sách các giá trị:a,b,c,d.... thì cell(a2) bằng OK

Mong các bạn giúp đỡ.
Xin cảm ơn.
 
Khóa học Quản trị dòng tiền
S

SA_DQ

Thành viên Cố vấn - Webketoan Mentors
29/6/05
612
104
43
68
HCM city
Tôi muốn thay đoạn code:
if cell(a1)="a" or cell(a1)="b" or cell(a1)="c" or..... then
cell(a2)="OK"
else
cell(a2)="No"
endif

bằng code rút gọn rằng nếu giá trị cell(a1) thuộc danh sách các giá trị:a,b,c,d.... thì cell(a2) bằng OK

Mong các bạn giúp đỡ.
Xin cảm ơn.
Bạn thử với macro này xem sao:

Option Explicit
Const sChuan ="abcd. . . . . "
Sub ThayThe ()
If InStr( sChuan, [A1])> 0 then
[A2] = "OK"
Else
[A2] = "No"
End If
End Sub
 
V

vand

Guest
8/5/08
4
0
0
ha noi
Cám ơn SA_DQ nhé.
Nhân tiện tôi muốn Const Schuan="...." là một list có thể bổ sung (vd tham chiếu tới B1:B20 , giá trị ô A1 bằng 1 trong các giá trị các ô từ B1 tới B20) thì viết code thế nào nhỉ?
 
S

SA_DQ

Thành viên Cố vấn - Webketoan Mentors
29/6/05
612
104
43
68
HCM city
Cám ơn SA_DQ nhé.
Nhân tiện tôi muốn Const Schuan="...." là một list có thể bổ sung (vd tham chiếu tới B1:B20 , giá trị ô A1 bằng 1 trong các giá trị các ô từ B1 tới B20) thì viết code thế nào nhỉ?
1*/ Lúc đó thay vì Const, bạn phải khai báo 1 biến kiểu chuỗi, nếu 'B1:B20' là các chuỗi, hay Variant với kiểu dữ liệu khác tại danh sách sẽ nhận vô
Dim StrC As String, Jj As Integer
2*/ Lập 1 vòng lặp nối các giá trị trong các ô vô biến như là chuỗi:
For Jj = 1 To 20
StrC = StrC & Cells(Jj,2)
Next Jj
. . . . . (Tiếp theo là phần còn lại của macro mình đã viết cho bạn đó; Chúc vui vẽ!!)
 
adam_tran

adam_tran

Guitar inspiration
17/5/05
1,373
36
48
48
Goooogle
Tôi muốn thay đoạn code:
if cell(a1)="a" or cell(a1)="b" or cell(a1)="c" or..... then
cell(a2)="OK"
else
cell(a2)="No"
endif

bằng code rút gọn rằng nếu giá trị cell(a1) thuộc danh sách các giá trị:a,b,c,d.... thì cell(a2) bằng OK

Mong các bạn giúp đỡ.
Xin cảm ơn.

Bạn có thể dùng hàm bình thường để giải quyết việc này.
=IF(COUNTIF(........)) với danh sách được định nghĩa sẳn ở vùng nào đó.
Nếu 1 tình huống nào đó bắt buộc bạn phải coding = VBA thì bạn cũng có thể dùng hàm Excel ngay trong code:
If WorksheetFunction.Countif(...........)
 

Xem nhiều