Hi,
ich bin VBA Anfänger und würde gerne ein Wert in einer Zelle über VBA ansprechend und runden.
Ich hab mir folgendes überlegt, was aber irgendwie nicht funktioniert:
Es heißt dann: "Argument not optional".Sub round()
Sheets("Projections").Range("AA5").Value = Application.WorksheetFunction.round
End Sub
Wäre super wenn jemand weiterhelfen könnte!
Hallo epione,
bitte poste in den allgemeinen Foren nur in Englisch. Ich habe Deinen Thread ins Non-English Forum verschoben.
Es gibt in VBA auch eine Round Funktion. Probier mal dies:
GrussSub round() Sheets("Projections").Range("AA5").Value = Round(Sheets("Projections").Range("AA5").Value,2) End Sub
Vielen Dank für die rasche Antwort!!
Kann ich das application.worksheetfunction immer weglassen? und wann benutze ich denn den präfix "vba" also beispielweise vba.round?
Und sorry für falsch posten, ganz vergessen!
Application.Worksheetfunction kannst Du benutzen, wenn VBA selbst keine entsprechende Funktion hat, z.B. wenn Du ein CountA() machen möchtest:
Zum Thema vba.round hab ich keinen Plan, bin selbst noch ziemlich am Anfang mit VBA.' Get last used row of DataSheet iLastRow = Application.WorksheetFunction.CountA(ws.Range("A:A"))
(I leave this to teylyn to translate):
VBA has a Round function which is different from the Round worksheet function. When you use VBA.Round (or just Round) in code, you are using the VBA version, which uses bankers rounding (to nearest even number); Application.Round or Application.WorksheetFunction.Round uses the ROUND worksheet function, which uses symmetric arithmetic rounding (i.e. .5 rounds up).
epione, brauchst Du ne Übersetzung?
Obwohl ich mir ziemlich sicher bin, dass romperstomper das auch alleine hinkriegen würde.
Ich spreche kein Deutsch seit etwa 20 Jahren! Hab' fast das Ganze vergessen.![]()
Ich studier in England, also no worries ;-))
Danke euch!!
There are currently 1 users browsing this thread. (0 members and 1 guests)
Bookmarks