AW: If-Befehl in einem Value-Befehl
25.10.2006 00:15:47
Daniel
Hallo
verstehe ich das richtig, das sich der Zellwert aus vielen Einzelwerten zusammensetzt, von denen einer (oder einige) per IF noch gesteuert werden sollen?
Und das soll alles in eine Zeile programmiert werden?
Das kannst du doch in mehrere Zeilen aufbrechen, in dem du immer schreibst:
sheets("Code_erstellen").cells(35,5).value = "TextTeil 1"
sheets("Code_erstellen").cells(35,5).value = sheets("Code_erstellen").cells(35,5).value & "TextTeil 2"
if xy = true then
sheets("Code_erstellen").cells(35,5).value = sheets("Code_erstellen").cells(35,5).value & "Textteil 3a"
else
sheets("Code_erstellen").cells(35,5).value = sheets("Code_erstellen").cells(35,5).value & "Textteil 3b"
end if
sheets("Code_erstellen").cells(35,5).value = sheets("Code_erstellen").cells(35,5).value & "TextTeil 4"
dann wird der weitere Text immer ergänzt.
Das ist zwar etwas mehr Schreibarbeit, aber wesentlich übersichtlicher, da die Zeilen kürzer sind.
Außerdem kannst du vor jeden Bestandteil die entsprechende IF-Abfrage stellen, ohne die anderen Bestandteile zu beeinflussen.
Verkürzen kannst du das ganze noch, indem du mit WITH arbeitest, dh. du schreibst am Anfang der Zuweisung "With Sheets("Codeerstellen").cells(35,5)" und am Ende dann "End with". Dazwischen kannst du dann jedesmal den Text "Sheets("Codeerstellen").cells(35,5) durch einen "." ersetzen. Das sieht dann so aus:
with sheets("Code_erstellen").cells(35,5)
.value = "TextTeil 1"
.value = .value & "TextTeil 2"
if xy = true then
.value = .value & "Textteil 3a"
else
.value = .value & "Textteil 3b"
end if
.value = .value & "TextTeil 4"
end with
innerhalb dieser WITH-Klammer weiß Excel, das mit dem "." das Objekt Sheets("Coder_erstellen").Cells(35,5) gemeint ist.
Gruß, Daniel