2017-12-28 5 views
-2

Haben wir eine Lösung haben diesen Code zum Laufen zu bringen,VBA: Multiplikation den Wert aus einem Inputbox mit

Sub FindSum() 
    Dim Euro1 As String 
    Euro1 = InputBox("", "") 
     ActiveCell.FormulaR1C1 = "=RC[-1]*" & Euro1.Value 
End Sub 

Erwartet: Dieser Code wird der Wert aus einem Feld auswählen und mit dem angegebenen Wert multiplizieren in Eingabefeld.

+4

Entfernen Sie den '.Value'-Teil. – braX

+0

Danke @braX Das hat funktioniert, ich bin wirklich albern, habe nicht darüber nachgedacht –

Antwort

0
Sub FindSum() 
    Dim Euro1 As String 
    Euro1 = InputBox("", "") 
     ActiveCell.FormulaR1C1 = "=RC[-1]*" & Euro1 
End Sub 

Try :)

5
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 
Verwandte Themen