Code tổng theo mảng ngang! (1 người xem)

Liên hệ QC

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

overnight_9

strive for mastery
Tham gia
4/7/12
Bài viết
160
Được thích
81
Nghề nghiệp
Công nhân
dears các anh,
giúp em đoạn code tính tổng theo chiều ngang có điều kiện, em khai được đến đây rồi tịt luôn.

PHP:
Sub sum()
Dim Rng(), i As Long, cll As Range
ReDim Rng (1 To 230)
Rng = Sheet1.Range(Sheet1.[C5], Sheet1.[IV65000].End(xlUp)).Value
    For Each cll In Sheet1.Range(sheet1.[A5], Sheet1.[A65000].End(xlUp))
        If cll.Value <> "" Then
            For i = 1 To UBound(Rng, 1)
                cll.Offset(, 2).Value = 
               


End Sub
em cám ơn
 

File đính kèm

dears các anh,
giúp em đoạn code tính tổng theo chiều ngang có điều kiện, em khai được đến đây rồi tịt luôn.

PHP:
Sub sum()
Dim Rng(), i As Long, cll As Range
ReDim Rng (1 To 230)
Rng = Sheet1.Range(Sheet1.[C5], Sheet1.[IV65000].End(xlUp)).Value
    For Each cll In Sheet1.Range(sheet1.[A5], Sheet1.[A65000].End(xlUp))
        If cll.Value <> "" Then
            For i = 1 To UBound(Rng, 1)
                cll.Offset(, 2).Value = 
               


End Sub
em cám ơn
Overnight_9 ơi, bạn viết code nửa chừng, yêu cầu cũng mô tả nửa chừng luôn "các anh" đọc cũng "tịt" luôn hỏng biết giúp bạn thế nào :"'?
 
Upvote 0
dears các anh,
giúp em đoạn code tính tổng theo chiều ngang có điều kiện, em khai được đến đây rồi tịt luôn.

PHP:
Sub sum()
Dim Rng(), i As Long, cll As Range
ReDim Rng (1 To 230)
Rng = Sheet1.Range(Sheet1.[C5], Sheet1.[IV65000].End(xlUp)).Value
    For Each cll In Sheet1.Range(sheet1.[A5], Sheet1.[A65000].End(xlUp))
        If cll.Value <> "" Then
            For i = 1 To UBound(Rng, 1)
                cll.Offset(, 2).Value = 
               


End Sub
em cám ơn

Overnight ơi học căn bản lại cho kỹ, học kiểu này tẩu hoả là cái chắc

PHP:
Sub sum()
Dim vung(), i As Long, ii As Long
vung = Sheet1.Range(Sheet1.[a5], Sheet1.[M65000].End(xlUp)).Value
   For i = 1 To UBound(vung)
      If vung(i, 1) <> "" Then
         For ii = 3 To UBound(vung, 2)
            vung(i, 2) = vung(i, 2) + vung(i, ii)
         Next
         End If
      Next i
Sheet1.[a5].Resize(i - 1, ii - 1) = vung
End Sub
 
Upvote 0
dears các anh,
giúp em đoạn code tính tổng theo chiều ngang có điều kiện, em khai được đến đây rồi tịt luôn.

PHP:
Sub sum()
Dim Rng(), i As Long, cll As Range
ReDim Rng (1 To 230)
Rng = Sheet1.Range(Sheet1.[C5], Sheet1.[IV65000].End(xlUp)).Value
    For Each cll In Sheet1.Range(sheet1.[A5], Sheet1.[A65000].End(xlUp))
        If cll.Value <> "" Then
            For i = 1 To UBound(Rng, 1)
                cll.Offset(, 2).Value = 
               


End Sub

em cám ơn

Không hiểu tại sao phải dùng vòng lặp nhỉ ???
Nếu chỉ sum đúng như yêu cầu trong file của bạn thì tôi thường làm thế này:

Mã:
Sub Macro1()
Set Rng = Range([a5], [a65000].End(3))
Rng.Offset(, 1) = "=IF(RC[-1]="""",0,SUM(RC[1]:RC[254]))"
Rng.Offset(, 1) = Rng.Offset(, 1).Value
End Sub
Muốn để công thức thì chỉ cần 1 câu này.
Mã:
Sub Macro1()
Range([a5], [a65000].End(3)).Offset(, 1) = "=IF(RC[-1]="""",0,SUM(RC[1]:RC[254]))"
End Sub
 
Upvote 0
)(in góp vài í nhỏ ngoài lề

PHP:
Sub sum()
Dim Rng(), i As Long, cll As Range
ReDim Rng (1 To 230)
Rng = Sheet1.Range(Sheet1.[C5], Sheet1.[IV65000].End(xlUp)).Value
    For Each cll In Sheet1.Range(sheet1.[A5], Sheet1.[A65000].End(xlUp))
        If cll.Value <> "" Then
            For i = 1 To UBound(Rng, 1)
                cll.Offset(, 2).Value =             


End Sub

(*) /(hông nên dùng Rng() để ám chỉ đó là mảng, mà nên là Arr(), hay chí ít Mang(); Còn thứ xa xỉ kia dùng cho tham biến có kiểu dữ liệu là Range

(*) Không nên "i As Long", chí ít "I As Long"

(*) Không nên "cll As Range", chí ít "Cll As Range"

(*) Giữa dòng ReDim Rng (1 To 230) & dòng dưới của nó nên cách ra 1 dòng trống; Chuyện này nhằm dễ quan sát ngỏ hầu fát hiện ra các tham biến nào cta chưa khai báo hay khai báo chưa tường minh.

(Hãy coi trên đây là những khuyến cáo : Không nên đi bộ với 1 chưn trên vĩa hè, 1 cẳng dưới lòng đường!)
 
Upvote 0
Mình thấy thế này đã ổn

Mã:
Sub SumVBA()
MsgBox Evaluate("=sum(" & Range([A5], [A65536].End(3)).Address & ")")
End Sub
 
Upvote 0
Overnight ơi học căn bản lại cho kỹ, học kiểu này tẩu hoả là cái chắc

Cám ơn các chị & anh Quanghai, em đang tập đạp xích lô trước rồi quay lại học đi xe đạp. Tất nhiên cái gì mà không có giá chứ HIC.

cám ơn các anh chị nhiều.
 
Upvote 0
Web KT

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

Back
Top Bottom