Dizi içinde satır Toplamı

tamer42

Destek Ekibi
Destek Ekibi
Katılım
11 Mart 2005
Mesajlar
3,049
Excel Vers. ve Dili
Office 2013 İngilizce
merhaba,
Aşağıdaki kodda nümerik değer içeren E,F,G,H sütunları bir dizi (arr) içine aldıktan sonra;

Bu 4 sütunun satır olarak toplamını 2. bir dizi (arr2) içine ızlıca nasıl alabiliriz?

Örnek:
E2: 12, F2: 21, G2: 8, H2: 19
hücrelerinde bu değerler olsun, arr2(1)=12+21+8+19=60 değerini atayacak,
bunu tüm satırlar boyunca yapacak.

Şimdiden teşekkürler,
Kod:
Dim SH As Worksheet
Dim arr As Variant
Dim arr2 As Variant
Dim y As Long

Set SH = Sayfa1

y = SH.Cells(SH.Rows.Count, "A").End(xlUp).Row
arr = SH.Range("E2:H" & y).Value
 

hamitcan

Uzman
Uzman
Katılım
1 Temmuz 2004
Mesajlar
7,712
Excel Vers. ve Dili
Excel 2019 Türkçe
Ben bir şey yazdım ama diğer arkadaşlardan daha profesyonelce çözümler gelebilir.

Kod:
Sub dizi_toplami()
    Dim arr()
    Dim arr2()
    For Each hcr In [e2:h2]
        k = k + 1
        ReDim Preserve arr(0 To k)
        arr(k) = hcr.Value
    Next
    For t = 1 To UBound(arr)
        x = arr(t) + x
    Next
    ReDim arr2(0)
    arr2(0) = x
    MsgBox arr2(0)
End Sub
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,245
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Alternatif;

C++:
Option Explicit

Sub Test()
    Dim WF As WorksheetFunction
    Dim Sh As Worksheet, My_Data As Variant
    Dim My_Sum_Data As Variant, X As Long
    
    Set Sh = Sayfa1
    Set WF = WorksheetFunction
    
    My_Data = Sh.Range("E2:H" & Sh.Cells(Sh.Rows.Count, 1).End(3).Row).Value
    
    ReDim My_Sum_Data(1 To UBound(My_Data, 1), 1 To 1)
    
    For X = LBound(My_Data, 1) To UBound(My_Data, 1)
        My_Sum_Data(X, 1) = WF.Sum(Application.Index(My_Data, X))
    Next
    
    Range("J2").Resize(UBound(My_Sum_Data)) = My_Sum_Data
End Sub
 

tamer42

Destek Ekibi
Destek Ekibi
Katılım
11 Mart 2005
Mesajlar
3,049
Excel Vers. ve Dili
Office 2013 İngilizce
Alternatif;

C++:
Option Explicit

Sub Test()
    Dim WF As WorksheetFunction
    Dim Sh As Worksheet, My_Data As Variant
    Dim My_Sum_Data As Variant, X As Long
   
    Set Sh = Sayfa1
    Set WF = WorksheetFunction
   
    My_Data = Sh.Range("E2:H" & Sh.Cells(Sh.Rows.Count, 1).End(3).Row).Value
   
    ReDim My_Sum_Data(1 To UBound(My_Data, 1), 1 To 1)
   
    For X = LBound(My_Data, 1) To UBound(My_Data, 1)
        My_Sum_Data(X, 1) = WF.Sum(Application.Index(My_Data, X))
    Next
   
    Range("J2").Resize(UBound(My_Sum_Data)) = My_Sum_Data
End Sub
Teşekkürler Kothan Hocam
 
Üst