Bạn thử:nhờ moin người giúp code tạo hàm tự động thêm số chứng từ khi biết loại chứng từ và ngày tháng theo định dạng, tháng 1 sẽ là "pn/01/000001" hết tháng sang tháng 2 lại bắt đầu bằng "pn/02/00001"
Function DanhSoPhieu(ByVal VungNgayThang As Range, ByVal VungSophieu As Range, _
ByVal NgayChungtu, ByVal Loaiphieu As String) As String
Dim i As Long, Item As Date, txt As String
If Not IsDate(NgayChungtu) Then Exit Function
If Len(Loaiphieu) = 0 Then Exit Function
With CreateObject("System.Collections.ArrayList")
For i = 1 To VungNgayThang.Rows.Count
Item = VungNgayThang(i)
If UCase(VungSophieu(i)) = UCase(Loaiphieu) Then
If Month(NgayChungtu) = Month(Item) Then
If Not .Contains(Item) Then .Add Item
End If
End If
Next
.Sort
If .Count Then
For i = 0 To .Count - 1
If NgayChungtu = .Item(i) Then
txt = UCase(Loaiphieu) & "/" & Format(Month(NgayChungtu), "00") & "/" & Format(i + 1, "0000000")
Exit For
End If
Next
End If
End With
DanhSoPhieu = txt
End Function
Ngày 1/1/2018 có 2 phiếu BH thì sao taBạn thử:
PHP:Function DanhSoPhieu(ByVal VungNgayThang As Range, ByVal VungSophieu As Range, _ ByVal NgayChungtu, ByVal Loaiphieu As String) As String Dim i As Long, Item As Date, txt As String If Not IsDate(NgayChungtu) Then Exit Function If Len(Loaiphieu) = 0 Then Exit Function With CreateObject("System.Collections.ArrayList") For i = 1 To VungNgayThang.Rows.Count Item = VungNgayThang(i) If UCase(VungSophieu(i)) = UCase(Loaiphieu) Then If Month(NgayChungtu) = Month(Item) Then If Not .Contains(Item) Then .Add Item End If End If Next .Sort If .Count Then For i = 0 To .Count - 1 If NgayChungtu = .Item(i) Then txt = UCase(Loaiphieu) & "/" & Format(Month(NgayChungtu), "00") & "/" & Format(i + 1, "0000000") Exit For End If Next End If End With DanhSoPhieu = txt End Function
Xin góp vài ý với bộ mã chứng từ của bạn:Nhờ moi người giúp code tạo hàm tự động thêm số chứng từ khi biết loại chứng từ và ngày tháng theo định dạng, tháng 1 sẽ là "pn/01/000001" hết tháng sang tháng 2 lại bắt đầu bằng "pn/02/00001"
Hí hí. Đang học nên chưa thạo Anh ạNgày 1/1/2018 có 2 phiếu BH thì sao ta![]()
Hôm nay rảnh đang đọc cái CreateObject("System.Collections.ArrayList"). Đến bây giờ vẫn chưa đọc hết mặt chữ Bạn ạHôm trước chị có giúp em thấy hay quá ạ ! Hôm nay em thấy cách khác ! Chắc thêm nhiều điều kiện nữa
Sort dữ liệu trùng bằng CreateObject("System.Collections.ArrayList") để xử lý dữ liệu khá khó, nếu là số nguyên hoặc ngày thì cộng thêm 1 giá trị <1 để phân biệt các giá trị trùngHí hí. Đang học nên chưa thạo Anh ạ![]()
Chưa khó xử bằng cách để tính ra số của phiếu ngày 11/01/2018. Hiểu cách tính chết liền.Ngày 1/1/2018 có 2 phiếu BH thì sao ta![]()
Chắc chẳng có ai viết cái hàm kiểu này như em đâu anh nhỉSort dữ liệu trùng bằng CreateObject("System.Collections.ArrayList") để xử lý dữ liệu khá khó, nếu là số nguyên hoặc ngày thì cộng thêm 1 giá trị <1 để phân biệt các giá trị trùng
Cách làm rất độc đáoChắc chẳng có ai viết cái hàm kiểu này như em đâu anh nhỉ