Dim Euro1 As String
Sie Euro1
als String
erklärt. Strings sind ein primitiver Typ in VBA und primitive Typen haben keine Mitglieder, die Sie anrufen können, was dies bedeutet:
Debug.Print Euro1.Value
illegal ist.
Wenn Sie eine String
haben, können Sie es einfach als solche verwendet werden:
ActiveCell.FormulaR1C1 = "=RC[-1]*" & Euro1
Dies wird definitiv andere Probleme verursachen aber: Sie müssen lesen, auf Benutzereingabevalidierung. Code, der Benutzereingaben systematisch als gültig behandelt, wird immer Probleme haben. Hier sehen wir, dass Excel den Wert =RC[-1]*Hi There I'm some invalid input
nicht berechnen kann. Verwenden Sie die integrierte Funktion IsNumeric
, um festzustellen, ob eine Zeichenfolge einen Wert enthält, der als Zahl behandelt werden kann, wenn Sie eine Zeichenfolge als Zahl verwenden möchten.
If IsNumeric(Euro1) Then
ActiveCell.FormulaR1C1 = "=RC[-1]*" & Euro1
Else
MsgBox "Invalid input!"
End If
Entfernen Sie den '.Value'-Teil. – braX
Danke @braX Das hat funktioniert, ich bin wirklich albern, habe nicht darüber nachgedacht –