2016-12-21 12 views
0

Ich bin ziemlich neu in der Verwendung von VBA für Excel, aber nach einigem Suchen ohne Ergebnis denke ich, dass ich etwas Hilfe von Ihnen brauche.vba Zahlenformat schreiben spezifischen Text

Ich versuche, eine bestimmte Zelle zu formatieren, so dass, wenn eine Bedingung erfüllt ist, zeigt es den Wert aus einer anderen Zelle, aber vor einem bestimmten Text, wie "Constantin". Das angezeigte Ergebnis wäre beispielsweise Constantin 80.25.

Der Code, den ich wie folgt aussieht bin versucht:

If Cells(4, 1) < 0 Then 

    With Range("A1") 
    .NumberFormat = "'Constantin' 0.00" 
    .Value = - Cells(4, 1) 

    End With 

    End If 

Ich weiß, dass die Syntax ist nicht richtig, das ist mein Problem ist, ich denke, ich nicht die richtige Syntax finden. Ich hoffe, ich störe dich nicht mit dieser, wahrscheinlich, einfachen Frage, aber ich konnte einfach nicht finden, was ich brauchte. Vielen Dank

+0

die 2 Zeilen in 'With' mit dem folgenden' .Value = "Constantin" & Cells (4, 1) .Value' –

Antwort

1

Es sieht aus wie Sie das Wort als Teil des eigentlichen Format nicht benötigen, wobei in diesem Fall so etwas wie dies genügt:

If Cells(4, 1).Value < 0 Then 
    Range("A1").Value = "Constantin " & (Cells(4, 1).Value * -1) 
End If 

Wenn Sie wirklich eine With nutzen wollte Block dann:

With Cells(4, 1) 
    If .Value < 0 Then 
     Range("A1").Value = "Constantin " & (.Value * -1) 
    End If 
End With 
+0

Ok ersetzen, so scheint es jetzt zu arbeiten. Eine weitere Frage: Wie kann ich beispielsweise die Anzahl der Dezimalstellen auf eins reduzieren? Jetzt bekomme ich eine Nummer mit 13 Nachkommastellen. Danke –

+0

'" Constantin "& WorksheetFunction.Round (.Value * -1, 1)' sollte den Trick machen;) –

+0

Ich habe meinen Code in einem Modul geschrieben und dies könnte der Grund sein, dass ich diesen Fehler "ungültige oder unqualifizierte Referenz" bekomme , mit dem ".value" ausgewählt, wenn ich versuche, den Code mit der Zeile zu kompilieren, die Sie übertraten –