Mình có tạo 1 hàm nhưng khi tham chiếu đến 1 range trong sheet khác thì không chạy đúng.
Xin các ban chỉ dẫn:
Chi tiết trong file đính kèm.
Cám ơn các bạn!
Xin các ban chỉ dẫn:
Mã:
Public Function xoy(ByVal a As Variant, ByVal b As Variant, rg As Range) 'ham tim va thay the nhu toa do y=f(x) (biet x,y ra f va ...) dai = rg.Columns.Count
rong = rg.Rows.Count
goc_r = rg.Cells(1, 1).Row
goc_c = rg.Cells(1, 1).Column
j = 0
For I = goc_c To goc_c + dai 'tim theo hang 1
If Cells(goc_r, I) = a Then
k = 1
GoTo tip
End If
Next I
For I = goc_r + 1 To goc_r + rong 'neu ko duoc tim theo cot 1
If Cells(I, goc_c) = a Then
k = 2
GoTo tip
End If
Next I
For I = goc_r + 1 To goc_r + rong 'neu ko dc tim trong bang
For j = goc_c + 1 To goc_c + dai
If Cells(I, j) = a Then GoTo tip
Next j
Next I
xoy = "bo tay" 'ko tim thay a tim b =xoy(b, a, rg) nhung ko can thiet
Exit Function
tip: If j <> 0 Then
For l = goc_r To goc_r + rong 'tim trong bang xong thi tim b trong hang hoac cot
If Cells(l, goc_c) = b Then
xoy = Cells(goc_r, j)
Exit For
End If
Next l
For l = goc_c To goc_c + dai
If Cells(goc_r, l) = b Then
xoy = Cells(I, goc_c)
Exit For
End If
Next l
Else
Select Case k
Case 1
For j = goc_r To goc_r + rong 'tim thay a o hang 1, di tim b o cot 1 va cot co a
If Cells(j, goc_c) = b Then 'tim thay o cot 1 thi kq tinh theo 2 canh goc vuong
xoy = Cells(j, I)
Exit For
End If
If Cells(j, I) = b Then 'tim thay o trong bang thi kq tinh theo canh huyen va canh ngang a
xoy = Cells(j, goc_c)
Exit For
End If
Next j
Case 2
For j = goc_c To goc_c + dai 'tim thay a o cot 1 di tim b o hang 1 va hang co a
If Cells(goc_r, j) = b Then 'tim thay o hang 1 thi kq tinh theo 2 canh goc vuong
xoy = Cells(I, j)
Exit For
End If
If Cells(I, j) = b Then 'tim thay o trong bang thi kq tinh theo canh huyen va canh do.c a
xoy = Cells(goc_r, j)
Exit For
End If
Next j
End Select
End If
End Function
Cám ơn các bạn!


. Minh xin gui file len mong cac ban giup do
. làm mình cứ mò mẫm ở đâu đâu