sữa lỗi runtime 424 - giúp e gấp

Liên hệ QC

NguyenAnnn

Thành viên mới
Tham gia
8/11/22
Bài viết
4
Được thích
0
Sub Button2_Click()
Dim ShNhap As Worksheet, ShXuat As Worksheet, ShTheKho As Worksheet
Dim arr(), kq(), i As Long, a As Long, lr As Long
Dim TuNgay As Date, DenNgay As Date, TenSP As String

Set ShNhap = Sheets("NHAPKHO")
Set ShXuat = Sheets("XUATKHO")
Set ShTheKho = Sheets("TheKho")
TuNgay = ShTK.Range("I1").Value
DenNgay = ShTK.Range("I2").Value
TenSP = ShTheKho.Range("B4").Value

With ShNhap
lr = .Range("A" & Rows.Count).End(xlUp).Row
arr = .Range("A5:I" & lr).Value
ReDim kq(1 To 10000, 1 To 5)
End With
For i = 1 To UBound(arr, 1)
If arr(i, 2) >= TuNgay And arr(i, 2) <= DenNgay And arr(i, 5) = TenSP Then
a = a + 1
kq(a, 1) = arr(i, 2) 'Ngay
kq(a, 2) = arr(i, 1) 'So chung tu
kq(a, 3) = arr(i, 3) 'ncc
kq(a, 4) = arr(i, 8) 'sl nhap
'kq(a, 5) = "" 'spxuat
End If
Next i
With ShXuat
lr = .Range("A" & Rows.Count).End(xlUp).Row
arr = .Range("A5:I" & lr).Value

For i = 1 To UBound(arr, 1)
If arr(i, 2) >= TuNgay And arr(i, 2) <= DenNgay And arr(i, 5) = TenSP Then
a = a + 1
kq(a, 1) = arr(i, 2) 'Ngay
kq(a, 2) = arr(i, 1) 'So chung tu
kq(a, 3) = arr(i, 3) 'ncc
' kq(a, 4) = arr(i, 8) 'sl nhap
kq(a, 5) = arr(i, 2) ' slxuat
End If
Next i
End With
' dan ra sheets
If a > 10000 Then
MsgBox "Ket qua vuot qua 10000 dong, vui long chon thoi gian ngan hon!", vbCritical
Exit Sub
End If

With ShTheKho
If a > 0 Then
.Range("A11:E10010").ClearContents ' xoa trang truoc khi dan
.Range("A11").Resize(a, 5).Value = kq
End If
End With

End Sub
 
Quá tiếc rằng không có file nên khó ai biết sửa lỗi cho bạn; À mà nhân đây xin hỏi nhỏ:
Dòng lệnh nào đang báo lỗi cho bạn?
 
Quá tiếc rằng không có file nên khó ai biết sửa lỗi cho bạn; À mà nhân đây xin hỏi nhỏ:
Dòng lệnh nào đang báo lỗi cho bạn?
Nếu file không có đổi tên Sheet thì lỗi ở dòng thứ tư (không kể các dòng khai báo).
Nhìn code này biết là sì-tin GPE, mấy chục dòng không có một lời giải thích.
 
Lần chỉnh sửa cuối:
Đoán đại, không trúng thì trật.
Ở trên, bài #3 tôi có nói "(với điều kiện) không có đổi tên Sheet".
Nếu có sheet nào đó lấy tên ShTK thì ShTK là một Object được xác định, có thuộc tính Range đàng hoàng. Và lỗi không phải ở câu ấy.


1668748004919.png

Chú thích: Nếu không có vụ đổi tên sheet thì còn phải xét Object có khai báo theo biến toàn cục?
 
Sub Button2_Click()
Dim ShNhap As Worksheet, ShXuat As Worksheet, ShTheKho As Worksheet
Dim arr(), kq(), i As Long, a As Long, lr As Long
Dim TuNgay As Date, DenNgay As Date, TenSP As String

Set ShNhap = Sheets("NHAPKHO")
Set ShXuat = Sheets("XUATKHO")
Set ShTheKho = Sheets("TheKho")
TuNgay = ShTK.Range("I1").Value
DenNgay = ShTK.Range("I2").Value
TenSP = ShTheKho.Range("B4").Value

With ShNhap
lr = .Range("A" & Rows.Count).End(xlUp).Row
arr = .Range("A5:I" & lr).Value
ReDim kq(1 To 10000, 1 To 5)
End With
For i = 1 To UBound(arr, 1)
If arr(i, 2) >= TuNgay And arr(i, 2) <= DenNgay And arr(i, 5) = TenSP Then
a = a + 1
kq(a, 1) = arr(i, 2) 'Ngay
kq(a, 2) = arr(i, 1) 'So chung tu
kq(a, 3) = arr(i, 3) 'ncc
kq(a, 4) = arr(i, 8) 'sl nhap
'kq(a, 5) = "" 'spxuat
End If
Next i
With ShXuat
lr = .Range("A" & Rows.Count).End(xlUp).Row
arr = .Range("A5:I" & lr).Value

For i = 1 To UBound(arr, 1)
If arr(i, 2) >= TuNgay And arr(i, 2) <= DenNgay And arr(i, 5) = TenSP Then
a = a + 1
kq(a, 1) = arr(i, 2) 'Ngay
kq(a, 2) = arr(i, 1) 'So chung tu
kq(a, 3) = arr(i, 3) 'ncc
' kq(a, 4) = arr(i, 8) 'sl nhap
kq(a, 5) = arr(i, 2) ' slxuat
End If
Next i
End With
' dan ra sheets
If a > 10000 Then
MsgBox "Ket qua vuot qua 10000 dong, vui long chon thoi gian ngan hon!", vbCritical
Exit Sub
End If

With ShTheKho
If a > 0 Then
.Range("A11:E10010").ClearContents ' xoa trang truoc khi dan
.Range("A11").Resize(a, 5).Value = kq
End If
End With

End Sub

Set ShTK = Sheets("ShTK")
Mình thêm dòng này không thấy lỗi. Mà cũng chưa hiểu code làm gì. :wallbash: :wallbash: :wallbash:
Nói chung là chỉ chọc ngoáy tí.
 
“giúp e gấp”!!!!
Thế giúp từ từ có được không bạn!
Đọc tiêu đề xong nghe như mới nhận được lệnh của cụ ông trời ấy nhỉ?!
:giveup:
 
Gấp mấy lần, gấp ra hay gấp dô ?
Mà lên bài từ đêm qua, chắc có người gấp giúp rồi.
 
Web KT

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

Back
Top Bottom