- Tham gia
- 6/8/06
- Bài viết
- 3,260
- Được thích
- 3,787
Mình có một hàm UF để tìm giá trị Chứng từ lớn nhất.
(Hiểu về nội dung thế nào thì các bác có thể tham khảo :http://tinyurl.com/2kb4q2)
Đây là hàm :
Khi nó hoạt động ở sheet thì làm việc rất tốt
VD : A1 = CTMax(E2:E100;"PT07/10/";3)
Tuy nhiên trong VBA thì lại không dùng được.
VD : = CTMax(Sheet1.Range("E2:E100"),"PT07/10/",3)
Nó báo lỗi ngay ở vòng lặp For each
Như vậy có nghĩa là mình khai báo Vung đã sai (mình khai báo là Range)
Vậy thì khai báo thế nào để dùng ở VBA bình thường nhỉ ???????
Tức là nó hiểu Sheet1.Range("E2:E100") là 1 range bình thường nhỉ giống như E2:E100 ???
Mong mọi người giúp đỡ.
Cảm ơn nhiều.
Thân!
(Hiểu về nội dung thế nào thì các bác có thể tham khảo :http://tinyurl.com/2kb4q2)
Đây là hàm :
PHP:
Function CTMax(Vung As Range, KT As String, SoKT As Byte) As String
On Error Resume Next
Dim i As Long
Dim CT As Range
For Each CT In Vung
CT.Select
If Left$(CT.Value, Len(KT)) = KT Then
If IsNumeric(Val(Right$(CT.Value, SoKT))) = True Then
If Val(Right$(CT.Value, SoKT)) > i Then i = Val(Right$(CT.Value, SoKT)): MsgBox i
End If: End If
Next
CTMax = KT & Format(i + 1, "000")
Set CT = Nothing
Set Vung = Nothing
End Function
VD : A1 = CTMax(E2:E100;"PT07/10/";3)
Tuy nhiên trong VBA thì lại không dùng được.
VD : = CTMax(Sheet1.Range("E2:E100"),"PT07/10/",3)
Nó báo lỗi ngay ở vòng lặp For each
Như vậy có nghĩa là mình khai báo Vung đã sai (mình khai báo là Range)
Vậy thì khai báo thế nào để dùng ở VBA bình thường nhỉ ???????
Tức là nó hiểu Sheet1.Range("E2:E100") là 1 range bình thường nhỉ giống như E2:E100 ???
Mong mọi người giúp đỡ.
Cảm ơn nhiều.
Thân!