mileyp
Thành viên mới

- Tham gia
- 4/7/23
- Bài viết
- 3
- Được thích
- 0
Cả nhà cho em hỏi em có bảng dữ liệu muốn tính cột Closing stock chạy step 4 như sau

Em viết nhưng nó chỉ ra một kết quả ngày đầu tiên, nhờ cả nhà sửa lỗi giúp em với ạ
Sub Closing_Stock()
Dim i As Long, Arr_N(), Closing_stock(), lr As Long, j As Long
Dim t
t = Timer
lr = Sheet1.Range("C" & Rows.Count).End(xlUp).row
Arr_N = Sheet1.Range("H13:EM" & lr).Value
ReDim Closing_stock(1 To UBound(Arr_N, 1), 1 To UBound(Arr_N, 2))
For i = 1 To UBound(Arr_N, 1)
For j = 1 To UBound(Arr_N, 2)
If Arr_N(i, j) <> "" Then
Closing_stock(i, j) = Arr_N(i, j) + Arr_N(i, j + 1) - Arr_N(i, j + 2) + Arr_N(i, j + 3)
Else
Closing_stock(i, j) = Arr_N(i, j + 1) - Arr_N(i, j + 2) + Arr_N(i, j + 3)
End If
Next
Next
Sheet1.Range("L13").Resize(i, j) = Closing_stock
MsgBox Timer - t
End Sub

Em viết nhưng nó chỉ ra một kết quả ngày đầu tiên, nhờ cả nhà sửa lỗi giúp em với ạ
Sub Closing_Stock()
Dim i As Long, Arr_N(), Closing_stock(), lr As Long, j As Long
Dim t
t = Timer
lr = Sheet1.Range("C" & Rows.Count).End(xlUp).row
Arr_N = Sheet1.Range("H13:EM" & lr).Value
ReDim Closing_stock(1 To UBound(Arr_N, 1), 1 To UBound(Arr_N, 2))
For i = 1 To UBound(Arr_N, 1)
For j = 1 To UBound(Arr_N, 2)
If Arr_N(i, j) <> "" Then
Closing_stock(i, j) = Arr_N(i, j) + Arr_N(i, j + 1) - Arr_N(i, j + 2) + Arr_N(i, j + 3)
Else
Closing_stock(i, j) = Arr_N(i, j + 1) - Arr_N(i, j + 2) + Arr_N(i, j + 3)
End If
Next
Next
Sheet1.Range("L13").Resize(i, j) = Closing_stock
MsgBox Timer - t
End Sub