vba

Liên hệ QC
Tôi tuân thủ nội quy khi đăng bài

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
1702500933227.png
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
 
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
View attachment 297580
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
bạn gửi File và quy tắc tính lên, Ảnh mờ quá chả nhìn thấy gì
 
Upvote 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
View attachment 297580
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
Viết code như vậy là đã có step 4 chưa?
 
Upvote 0
em copy nhầm sau khi thử xóa để hiểu xem sao chứ bỏ step 4 là không chạy đc code này, bỏ step 4 vào nó không chạy sang các cột còn lại
 
Upvote 0
Mình đã tìm được cách rồi, many thanks
 
Upvote 0
Web KT
Back
Top Bottom