Excel 2013: Wert aus Variable (VBA) in Zelle schreiben?
Hi!
Ich sag jetzt schon mal danke für eure Antworten :)
Wie kann man den Wert der durch ein VBA-Makro in einer Variable steht in einer Zelle einfügen, so dass er da dauerhaft steht und auch aktualisiert wird, falls sich dieser Wert bzw. Variable ändert?
Sub Kommentarezaehlen()
Dim Kom As Comment
For Each Kom In ActiveSheet.Comments
i = i + 1
Next
msg = MsgBox("Das blatt enthält " & i & " Kommentare")
End Sub
Vielen Dank Leute!
1 Antwort
range("A1").value=i
wenn Du es kürzer machen willst, kannst Du die Count Eigenschaft verwenden, dann entfällt auch die for-/next schleife
range("A1").value=ActiveSheet.Comments.Count
und wenn Du per VBA eine Formel setzen (oder ändern) willst, im dt. Excel:
ActiveSheet.Range("A1").FormulaLocal = "=Summe(A2:A99)"
Zur Abfrage, ob eine Formel drinsteht, gibts die Funktion
if Hasformula(Activesheet.Range("A1")) then ...
Genaue Syntax müsste ich auch erst nachschauen. Ob man die so zählen kann, auch
um auf die eigentliche Frage noch mal zu kommen, wie man in Zellen etwas einträgt:
Zellen kannst Du über Range wie oben im Beispiel ansprechen (wobei eine einzige Zelle ein etwas überschaubarer Bereich wäre) oder mit cells. Hier aber beachten, dass erst die Zeile, dann die Spalte genannt wird
cells(2,1).value wäre A2
Die Angabe mit Range ist für viele leichter lesbar. Wenn Du bei der Spalte aber auch mit einer Variablen arbeitest, finde ich wiederum cells(x,y) geeigneter.
Da Du den Wert verändern willst, ist es eben range("A1").value - wenn Du da etwas herumspielst, findest Du auch die anderen Möglichkeiten - range("A1").interior.color für die Zellfarbe etc.
Das Auslesen eines Zellwertes geht nach dem gleichen Prinzip:
i=Range("A1").value*27 etc.