Làm sao searchChar trong hàm Instr(1, SearchString, SearchChar, 0) là một mảng???

  • Thread starter Thread starter ST-Lu!
  • Ngày gửi Ngày gửi
Liên hệ QC

ST-Lu!

Love Wingchun
Tham gia
19/8/08
Bài viết
730
Được thích
546
Nghề nghiệp
Xích lô một thời
Ví dụ:
= Instr(1, SearchString, SearchChar, 0)

Trong khi sử dụng em gặp phải trường hợp với cùng một cột tìm kiếm (SearchString) nhưng có nhiều SearChar khác nhau
Ví dụ: với các searhChar là A, B,
PHP:
If Instr(1, SearchString, A, 0) +Instr(1, SearchString, B, 0) = 0......

nhưng trong trường hợp có nhiều SearchChar (A,B,C,D) thì làm cách nào em gom chúng lại ví dụ
PHP:
MyArrSearchChar = {A,B,C,D...}
If Instr(1, SearchString, MyArrSearchChar,0)


Xin các Thầy chỉ giúp em
 
Dùng for cho dễ hiểu:
PHP:
Sub abc()
Dim SearchArr(1 To 10) As String, i As Long, SearchStrg As String
Dim Result As Long
    SearchArr(1) = "A"
    SearchArr(2) = "B"
    '. . .'
    SearchArr(10) = "J"
    
    For i = 1 To 10
        Result = Result + InStr(1, SearchStrg, SearchArr(i))
    Next
If Result = 0 Then
    '. . .'
End If
End Sub
 
Upvote 0
Mình ví dụ khi viết 1 hàm Test để làm việc này, nội dung hàm như sau:

PHP:
Function Test(chuoi As String) As Boolean
Dim ch()
ch = Array("a", "A", "b", "B", "c", "C", "d", "D")
Test = False
For i = 0 To UBound(ch)
If InStr(1, chuoi, ch(i)) > 0 Then Test = True: Exit Function
Next
End Function
Hoặc viết thế này cũng được

PHP:
Function Test(chuoi As String) As Boolean
Dim ch
ch = Split("a,A,b,B,c,C,d,D,e,E,f,F,g,G,h,H,i,I,j,J", ",")
Test = False
For i = 0 To UBound(ch)
If InStr(1, chuoi, ch(i)) > 0 Then Test = True: Exit Function
Next
End Function

Lưu ý: Ta nên sử dụng lệnh Exit... vì đã thấy 1 trong các ký tự thì thôi không kiểm tra nữa. Nó sẽ cắt bớt việc thừa và tăng tốc cho code.
 
Lần chỉnh sửa cuối:
Upvote 0
Em rất tâm đắc việc đặt test = False
Hay quá
 
Upvote 0
Em rất tâm đắc việc đặt test = False
Ngocmai không rành VBA lắm, nhưng biết rằng hễ khai báo biến boolean thì nó mặc nhiên nhận giá trị False. Cũng như khai báo Long, Double có giá trị mặc nhiên là 0, biến String mặc nhiên có giá trị là chuỗi rỗng ("").

Trong bài của anh Sealand do không khai báo biến từ đầu, nhưng gán giá trị False hoặc True cho biến cũng là 1 cách khai báo boolean.
Cái hay là vận dụng khi nào để mặc định False, và khi nào thì phải gán trước giá trị True.
 
Upvote 0
Web KT

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

Back
Top Bottom