Variable in einem Index in VBA verwenden
23.07.2025 12:18:15
kubden82
ich finde meinen Fehler nicht, hier die Idee:
ich möchte per VBA eine Formel in eine Zelle schreiben, dabei soll ein Wert für eine Reihe als Variable über eine Zelle berechnet werden, damit sich diese später auch nicht in der Formel auf die Zelle bezieht sondern dann einen festen Wert aufweist.
Hier das VBA, das nicht so funktioniert, wie erhofft:
Sub Hyperlink()
'Hyperlink zum Reiter wird eingefügt
Dim reihe As Integer
reihe = ThisWorkbook.Sheets("Auswertung").Range("B8").Value ' hier steht aktuell 4 drin, was sich aber immer weiter erhöhen wird
'die MsgBox dient nur als Überprüfung, wird später entfernt
MsgBox reihe
' hier das Problem, dass bei einer Änderung von B8 sich auch alle Zellen ändern, die mit der nachfolgenden Formel belegt wurden
ActiveCell.FormulaR1C1 = _
"=HYPERLINK(""#'""&@INDEX(Inhaltsverzeichnis,ROW(INDIRECT(""A""&VALUE(R8C2)+3)))&""'!B1"",@INDEX(Inhaltsverzeichnis,ROW(INDIRECT(""A""&VALUE(R8C2)+3))))"
'hier das Problem, dass die 4 konstant ist, sich aber bei jeder Ausführung um 1 erhöhen wird
'ActiveCell.FormulaR1C1 = _
"=HYPERLINK(""#'""&@INDEX(Inhaltsverzeichnis,@ROW(INDIRECT(""A""&4+3)))&""'!B1"",@INDEX(Inhaltsverzeichnis,@ROW(INDIRECT(""A""&4+3))))"
'hier das Problem, dass in der Formel in der der Zelle dann später @reihe steht und somit nicht berechnet werden kann
'ActiveCell.FormulaR1C1 = _
"=HYPERLINK(""#'""&@INDEX(Inhaltsverzeichnis,@ROW(INDIRECT(""A""&reihe)))&""'!B1"",@INDEX(Inhaltsverzeichnis,@ROW(INDIRECT(""A""&reihe))))"
End Sub
Ich hoffe, ihr könnt mir helfen, habe keine Lust die Links immer manuell anzupassen :-(, danke
Anzeige