2016-05-09 2 views
0

Может кто-нибудь помочь мне найти абсолютную сумму всех значений над главной диагональю в матрице?Матрица в excel vba

Sub Tee_Mass_1() 
    Dim aa, bb, m, n, i, j, alg As Range, algaeg 
    aa = InputBox("Minimaalne arv?", , -100) 
    bb = InputBox("Maksimaalne arv?", , 100) 
    m = InputBox("Mitu rida?", , 5) 
    n = InputBox("Mitu veergu?", , 5) 
    Randomize 
    Set alg = Range("ralgA") 
    For i = 1 To m 
    For j = 1 To n 
     alg.Cells(i, j) = Int(Rnd() * (bb - aa + 1)) + aa 
    Next j 
    Next i 
End Sub 
+1

Осознаете ли вы, что аа, бб, m и т. д. не затухают как Диапазоны, а как Варианты? В VBA вы не можете затушевывать цепочку цепей. – teylyn

+0

@UrdnotWrex - введенный вами код заполняет диапазон на листе. Это не попытка суммировать значения выше главной диагонали - что вы сделали, чтобы определить сумму? Что не работает для вас? – OldUgly

+0

Формат кода выполнен –

ответ

0

AS моего понимания на ваш вопрос, вы хотите суммировать абсолютные значения элементов выше главной диагонали, за исключением диагонали себя.

Элементы над основной диагональю обладают тем свойством, что j> i, если элемент (i, j). Таким образом, вы можете добавить следующий код

AbsSum = 0 
For i = 1 To m 
    For j = 1 To n 
     if j > i then 
      AbsSum = AbsSum + Abs(alg.Cells(i, j)) 
     End If 
    Next 
Next 

Если вы хотите включить диагонали, а затем задать условие: если J> = я тогда