Giúp về code tính tổng cho mảng (1 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

ngocbang2018

Thành viên mới
Tham gia
21/7/18
Bài viết
5
Được thích
0
Chúc sức khỏe mọi người
Em mới tập tành viết code mong mọi người giúp đỡ
Em có dữ liệu(File đính kèm) Có 2 cột cần tính tổng như sau
- Ở cột "Check qty" tính tổng các ô giá trị của các cột Check1 - 5
- Ở cột "Q'Ty Total" là lấy giá trị cột "Q'Ty of MaHang" * cột "Check qty"
P/S em cần giúp về code VBA mảng (Array), Em biết sử dụng công thức và Hàm rồi, nên giờ muốn thử qua VBA
 

File đính kèm

Chúc sức khỏe mọi người
Em mới tập tành viết code mong mọi người giúp đỡ
Em có dữ liệu(File đính kèm) Có 2 cột cần tính tổng như sau
- Ở cột "Check qty" tính tổng các ô giá trị của các cột Check1 - 5
- Ở cột "Q'Ty Total" là lấy giá trị cột "Q'Ty of MaHang" * cột "Check qty"
P/S em cần giúp về code VBA mảng (Array), Em biết sử dụng công thức và Hàm rồi, nên giờ muốn thử qua VBA
code này chắc dễ hiểu với bạn
Mã:
Sub tinh()
    For i = 2 To 25
        Cells(i, "D") = Cells(i, "E") + Cells(i, "F") + Cells(i, "G") + Cells(i, "H") + Cells(i, "I")
        Cells(i, "C") = Cells(i, "D") * Cells(i, "B")
    Next
End Sub
 
Upvote 0
code này chắc dễ hiểu với bạn
Mã:
Sub tinh()
    For i = 2 To 25
        Cells(i, "D") = Cells(i, "E") + Cells(i, "F") + Cells(i, "G") + Cells(i, "H") + Cells(i, "I")
        Cells(i, "C") = Cells(i, "D") * Cells(i, "B")
    Next
End Sub
Thêm dòng khai báo Dim i as long nếu như không chạy !
 
Upvote 0
code này chắc dễ hiểu với bạn
Mã:
Sub tinh()
    For i = 2 To 25
        Cells(i, "D") = Cells(i, "E") + Cells(i, "F") + Cells(i, "G") + Cells(i, "H") + Cells(i, "I")
        Cells(i, "C") = Cells(i, "D") * Cells(i, "B")
    Next
End Sub
Cám ơn bạn mình làm được rồi. Nhưng dữ liệu thật của mình rất nhiều cột chứ không phải 6 cột như vậy. Vậy bây giờ muốn cộng chủ động hơn thì sao
 
Upvote 0
Cám ơn bạn mình làm được rồi. Nhưng dữ liệu thật của mình rất nhiều cột chứ không phải 6 cột như vậy. Vậy bây giờ muốn cộng chủ động hơn thì sao
Các cột cộng mà liền nhau thì bạn dùng hàm
for j = 5 to x ' 5 là cột E, x là số cột cuối bạn muốn cộng, bài này x = 10
Cẹlls(i, 4) = cells(i,4) + cells(i,j)
Next
 
Upvote 0
Các cột cộng mà liền nhau thì bạn dùng hàm
for j = 5 to x ' 5 là cột E, x là số cột cuối bạn muốn cộng, bài này x = 10
Cẹlls(i, 4) = cells(i,4) + cells(i,j)
Next
cám ơn bạn mình chạy được code nay rồi, mình muốn chuyển Cells thành Range để chỉ định cột kết quả,
mình có đoạn code
Mã:
Dim ws As Worksheet
Dim arr1

Dim arr3
Dim I, j As Long

Set ws = ThisWorkbook.Worksheets(1)
arr1 = ws.Range("E2", ws.Range("E5000").End(xlUp)).Resize(, 20).Value


'MsgBox arr2
For I = 0 To UBound(arr1)
    For j = 0 To UBound(arr1, 2)
        arr3(I, 1) = arr3(I, 1) + arr1(I, j)
    Next j
Next I
ws.Range("D2").Resize(I, 1) = arr3
nhưng báo lỗi Type Missmach
 
Upvote 0
cám ơn bạn mình chạy được code nay rồi, mình muốn chuyển Cells thành Range để chỉ định cột kết quả,
mình có đoạn code
Mã:
Dim ws As Worksheet
Dim arr1

Dim arr3
Dim I, j As Long

Set ws = ThisWorkbook.Worksheets(1)
arr1 = ws.Range("E2", ws.Range("E5000").End(xlUp)).Resize(, 20).Value


'MsgBox arr2
For I = 0 To UBound(arr1)
    For j = 0 To UBound(arr1, 2)
        arr3(I, 1) = arr3(I, 1) + arr1(I, j)
    Next j
Next I
ws.Range("D2").Resize(I, 1) = arr3
nhưng báo lỗi Type Missmach
For i = 0 là trật lất. Mảng được chuyển hóa từ Range luôn có chỉ số LBound =1
 
Upvote 0
cám ơn bạn mình chạy được code nay rồi, mình muốn chuyển Cells thành Range để chỉ định cột kết quả,
mình có đoạn code
Mã:
Dim ws As Worksheet
Dim arr1

Dim arr3
Dim I, j As Long

Set ws = ThisWorkbook.Worksheets(1)
arr1 = ws.Range("E2", ws.Range("E5000").End(xlUp)).Resize(, 20).Value


'MsgBox arr2
For I = 0 To UBound(arr1)
    For j = 0 To UBound(arr1, 2)
        arr3(I, 1) = arr3(I, 1) + arr1(I, j)
    Next j
Next I
ws.Range("D2").Resize(I, 1) = arr3
nhưng báo lỗi Type Missmach
Có 2 vấn đề code của bạn:
1. Như bài #7
2. Là chỗ arr3, bạn gán nó là mảng thì bạn phải khi báo kích thước mảng đó Redim arr3(1 to ubound(ar), 1 to x)
 
Upvote 0
For i = 0 là trật lất. Mảng được chuyển hóa từ Range luôn có chỉ số LBound =1
Bài đã được tự động gộp:

Có 2 vấn đề code của bạn:
1. Như bài #7
2. Là chỗ arr3, bạn gán nó là mảng thì bạn phải khi báo kích thước mảng đó Redim arr3(1 to ubound(ar), 1 to x)
cám ơn mọi người mình đã làm được rồi
 
Upvote 0
Web KT

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

Back
Top Bottom