Ändern der Elemente entlang einer Diagonalen

Ändern der Elemente entlang einer Diagonalen

Wenn ich eine Matrix wie die folgende hätte:

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

Gibt es eine Methode, um die diagonalen Elemente, die eine 1 enthalten, durch eine 0 zu ersetzen?

Dies ist eine vereinfachte Matrix. Die, mit der ich arbeite, ist tatsächlich 2965 x 2965 groß, daher hoffe ich, die Formel auf eine Matrix dieser Größe anwenden zu können, aber nur so, dass sich die Diagonalen ändern und alles andere gleich bleibt.

Antwort1

Vielleicht übersehe ich etwas, aber das hier scheint zu funktionieren, was Sie brauchen:

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

verwandte Informationen