Hàm Match trong VBA

Liên hệ QC

moihocvba

Thành viên thường trực
Tham gia
16/8/20
Bài viết
211
Được thích
50
Chào anh chị, em sử dụng hàm Match trong VBA bằng cú pháp này nhưng VBA báo lỗi
Mã:
Sub ViDu()
Dim a
a = WorksheetFunction.Match("A", Range("A1:Z1"), 0)
End Sub

Anh chị cho em hỏi cú pháp viết đúng ạ! Em cám ơn rất nhiều!
 
Chào anh chị, em sử dụng hàm Match trong VBA bằng cú pháp này nhưng VBA báo lỗi
Mã:
Sub ViDu()
Dim a
a = WorksheetFunction.Match("A", Range("A1:Z1"), 0)
End Sub
Anh chị cho em hỏi cú pháp viết đúng ạ! Em cám ơn rất nhiều!
Khả năng là có lỗi là do không có chữ "A" trong đoạn "A1:Z1".
 
Upvote 0
Chào anh chị, em sử dụng hàm Match trong VBA bằng cú pháp này nhưng VBA báo lỗi
Mã:
Sub ViDu()
Dim a
a = WorksheetFunction.Match("A", Range("A1:Z1"), 0)
End Sub

Anh chị cho em hỏi cú pháp viết đúng ạ! Em cám ơn rất nhiều!
Lỗi không tìm thấy giá trị, bạn thêm câu On Error Resume Next vào đầu chương trình ha!
 
Upvote 0
Chào anh chị, em sử dụng hàm Match trong VBA bằng cú pháp này nhưng VBA báo lỗi
Mã:
Sub ViDu()
. . .
Anh chị cho em hỏi cú pháp viết đúng ạ! Em cám ơn rất nhiều!
Vậy nó báo mã lỗi là số nào? (? Err)

PHP:
Sub DuVi()
Dim A
 On Error GoTo LoiCT
 A = WorksheetFunction.Match("ABC", Range("A1:Z1"), 0)
Err_:  Exit Sub
LoiCT:
    If Err = 1004 Then
        MsgBox "Không Tìm Ra!", , "Chào Nhé!"
    Else
        MsgBox Err:         Resume Err_
    End If
End Sub
 
Lần chỉnh sửa cuối:
Upvote 0
Vậy nó báo mã lỗi là số nào? (? Err)

PHP:
Sub DuVi()
Dim A
 On Error GoTo LoiCT
 A = WorksheetFunction.Match("ABC", Range("A1:Z1"), 0)
Err_:  Exit Sub
LoiCT:
    If Err = 1004 Then
        MsgBox "Không Tìm Ra!", , "Chào Nhé!"
    Else
        MsgBox Err:         Resume Err_
    End If
End Sub
"Anh" chu đáo quá trời!
 
Upvote 0
Chào anh chị, em sử dụng hàm Match trong VBA bằng cú pháp này nhưng VBA báo lỗi
Mã:
Sub ViDu()
Dim a
a = WorksheetFunction.Match("A", Range("A1:Z1"), 0)
End Sub

Anh chị cho em hỏi cú pháp viết đúng ạ! Em cám ơn rất nhiều!

Viết đúng lả:

Mã:
Public Sub vidu()
Dim a As Variant
a = Application.Match("A", Range("A1:Z1"), 0)
MsgBox TypeName(a)
End Sub
 
Upvote 0
Viết đúng lả:

Mã:
Public Sub vidu()
Dim a As Variant
a = Application.Match("A", Range("A1:Z1"), 0)
MsgBox TypeName(a)
End Sub
Dạ em đã làm như thế này thì được, nhưng khi áp dụng với ngày tháng thì nó bị lỗi, em không hiểu lý do ở đâu, mong anh và mọi người giải đáp giúp ạ!

Em muốn tìm vị trí ngày trong ô A4 trong vùng A1:Z1
1668745978694.png

Code em viết thế này nó báo lỗi ạ

Mã:
Sub Test()
    Dim i
    i = Application.Match(Range("A4").Value, Range("A1:Z1"), 0)
    MsgBox i
End Sub

1668746042911.png

Em cám ơn ạ!
 

File đính kèm

  • Ham Match VBA.xlsm
    14.8 KB · Đọc: 7
Lần chỉnh sửa cuối:
Upvote 0
PHP:
Application.Match(Range("A4").Value, Range("A1:Z1").Value, 1)
Thử thêm cái này cho rối :D
Cũng đã nạp dữ liệu cho Function, đều lấy từ Range lên, một bên để Value, một bên không.
Quá trời là bất công. :unknw:
 
Upvote 0
PHP:
Application.Match(Range("A4").Value, Range("A1:Z1").Value, 1)
Thử thêm cái này cho rối :D
Cũng đã nạp dữ liệu cho Function, đều lấy từ Range lên, một bên để Value, một bên không.
Quá trời là bất công. :unknw:
Công với tư cái nỗi gì?
Tự dưng đem range ra, rút ruột (value, value2, gì gì đó) nạp cho hàm bảng tính.
Hàm bảng tính, nạp range bảng tính thì còn chê chỗ nào nữa?
 
Upvote 0
Dạ em đã hiểu và áp dụng được vào trường hợp của mình rồi ạ. Em cảm ơn rất nhiều!!
 
Upvote 0
Web KT

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

Back
Top Bottom