Alterando os elementos ao longo de uma diagonal

Alterando os elementos ao longo de uma diagonal

Se eu tivesse uma matriz como a abaixo:

1 0 1 0 0
0 0 1 0 0
1 1 1 1 1
1 1 1 0 1
0 0 0 0 1

Existe um método para percorrer e substituir os elementos diagonais contendo 1 a 0?

Esta é uma matriz simplificada, aquela com a qual estou trabalhando é na verdade 2965x2965, então espero aplicar a fórmula a esse tamanho de matriz, mas apenas de forma que as diagonais mudem e todo o resto permaneça o mesmo.

Responder1

Posso estar faltando alguma coisa, mas isso parece fazer o que você precisa:

Sub OneToZero()
    Dim N As Long, i As Long
    N = Columns.Count
    For i = 1 To N
        If Cells(i, i).Value = 1 Then Cells(i, i) = 0
    Next i
End Sub

informação relacionada