Hamedanger
Thành viên chính thức


- Tham gia
- 2/12/14
- Bài viết
- 60
- Được thích
- 25
Chưa hiểu ý bạn lắm list là vùng nào, nếu nằm ngoài [A1:A55] nhưng trong list thì kết quả như thế nào, "Nếu ngày nằm trong phạm vi A1:A55 nhưng ko có trong list thì trả về số dòng giá trị gần nhất" của list hay vùng A1:A55 , và kết quả trả về đâu (cột F)??, bạn cho vài ví dụ cụ thể đi.Yêu cầu e có ghi trong file đính kèm, mong được giúp đỡ
E xin cảm ơn
Yêu cầu e có ghi trong file đính kèm, mong được giúp đỡ
E xin cảm ơn
=IFERROR(MATCH(LOOKUP(E10,$A$1:$A$56),$A$1:$A$56,0),"")
Sao công thức này bị lỗi #NAME thầy nhỉ ?
Sub Test()
Dim T, Rng As Range, wf As WorksheetFunction
Set Rng = Sheet1.Range("A1:A" & Sheet1.Range("A65536").End(xlUp).Row)
T = wf.IfError(wf.Match(wf.Lookup(Sheet1.Range("E10"), Rng), Rng, 1), "")
MsgBox T
End Sub
Quy trở lại với bài này , sao e đặt công thức trong vba không được, mong đc giúp đỡ e đã dùng excel 2016
Sub Test()
Dim T, Rng As Range, wf As WorksheetFunction
[COLOR=#ff0000]Set wf = Application.WorksheetFunction[/COLOR]
Set Rng = Sheet1.Range("A1:A" & Sheet1.Range("A65536").End(xlUp).Row)
T = wf.IfError(wf.Match(wf.Lookup(Sheet1.Range("E10"), Rng), Rng, 1), "")
MsgBox T
End Sub
Sub Test()
Dim T, Rng As Range
Set Rng = Sheet1.Range("A1:A" & Sheet1.Range("A65536").End(xlUp).Row)
With Application
T = .IfError(.Match(.Lookup(Sheet1.Range("E10"), Rng), Rng, 1), "")
End With
MsgBox T
End Sub
Option Explicit
Function TimDong(Rng As Range, Dat As Date)
Dim Cls As Range, WF As Object, sRng As Range
Dim dMAX As Date, dMIN As Date, J As Integer
Set WF = Application.WorksheetFunction
dMAX = WF.Max(Rng): dMIN = WF.Min(Rng)
If Dat < dMIN Or Dat > dMAX Then
TimDong = ""
Else
Set sRng = Rng.Find(Dat, , xlValues, xlWhole)
If sRng Is Nothing Then
For J = 1 To (dMAX - dMIN)
For Each Cls In Rng
If Cls.Value = Dat - J Then
TimDong = Cls.Row: Exit Function
End If
Next Cls
Next J
Else
TimDong = sRng.Row
End If
End If
End Function