Cambiando los elementos a lo largo de una diagonal.

Cambiando los elementos a lo largo de una diagonal.

Si tuviera una matriz como la siguiente:

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 algún método para revisar y reemplazar los elementos diagonales que contienen un 1 por un 0?

Esta es una matriz simplificada, con la que estoy trabajando es en realidad 2965x2965, por lo que espero aplicar la fórmula a ese tamaño de matriz, pero solo de modo que las diagonales cambien y todo lo demás permanezca igual.

Respuesta1

Puede que me falte algo, pero esto parece hacer lo que necesitas:

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

información relacionada