Xin giúp đỡ kiểm tra lỗi : vòng lặp for + match + iserror dùng trong VBA

Liên hệ QC

Ijnas

Thành viên mới
Tham gia
3/3/16
Bài viết
5
Được thích
0
chào các anh chị, em mới bắt đầu tập lập trình VBA, nhờ các anh chị bớt chút thời gian kiểm tra lỗi giúp em với ạ
Xin cảm ơn các anh chị.
Đề bài : cho biết ngày xuất hàng & ngày nghỉ lễ . Tính ngày nhập kho. Yêu cầu ngày nhập kho phải thỏa mãn :
- sớm hơn ngày xuất hàng ít nhất là 1 ngày.
- không phải là ngày chủ nhật.
- không phải là ngày nghỉ lễ.
- đúng định dạng tháng/ngày hoặc ngày/tháng

CODE hiện tại đang bị lỗi: không xác định được ngày nghỉ lễ để lùi về phía sau.
File em đính kèm ạ
Function Ngaynhapkho(xuathang, holiday As Range) As Date
'ngày nhap kho phai som hon ngay xuat hang + khong phai holiday + khong phai chu nhat
Dim y, i, z As Integer
Dim x
y = 1
i = 1
For i = 1 To 30 Step 1
z = Application.Weekday(xuathang - i, 1)
x = Application.Match(xuathang - i, holiday, 0)
'z = 1 là chu nhat
'x = FALSE la ngay nghi le
' Neu xay ra mot trong hai dieu kien nay thi se kiem tra ngay truoc do
'Neu khong xay ra thi thoat vong lap for va lay gia tri i gan nhat
If Application.IsError(x) = False Or z = 1 Then
y = i + 1
Else
y = i
Exit For
End If
Next i
Ngaynhapkho = xuathang - y
End Function
 

File đính kèm

  • giaiphapexcel.xlsm
    36.7 KB · Đọc: 7
cái Application.IsError(x) = true chứ nhỉ? Mà sao bạn không dùng countif cho đỡ đau đầu.
 
Web KT

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

Back
Top Bottom