Ich brauche in VBA die Möglichkeit aus einer Kommazahl die nächst größere Ganzzahlige zu machen.
z.B. 17,23 > 18
2,45 > 3
10.11 > 11
Danke für Tipps! Max
Sub Ganzzahl()
Dim zelle As Range
For Each zelle In Selection
zelle.Offset(0, 1).Value = Int(zelle.Value) + 1
Next zelle
End Sub
Sub Aufrunden()
Dim Zelle As Object
For Each Zelle In Range("A1:A10")
If IsNumeric(Zelle) And Zelle <> "" Then Zelle = WorksheetFunction.RoundUp(Zelle, 0)
Next Zelle
End Sub
Um eine Kommazahl in VBA auf die nächste ganze Zahl aufzurunden, kannst Du die folgenden Schritte befolgen:
Öffne den VBA-Editor in Excel (Alt + F11).
Füge ein neues Modul hinzu (Rechtsklick auf "VBAProject" > Einfügen > Modul).
Kopiere und füge den folgenden Code ein:
Sub Aufrunden()
Dim Zelle As Object
For Each Zelle In Selection
If IsNumeric(Zelle) And Zelle <> "" Then
Zelle.Offset(0, 1).Value = WorksheetFunction.RoundUp(Zelle, 0)
End If
Next Zelle
End Sub
Markiere die Zellen, die Du aufrunden möchtest.
Führe das Makro aus (F5 oder über das Menü "Run").
Diese Methode verwendet die WorksheetFunction.RoundUp
, um die Kommazahlen in ganze Zahlen umzuwandeln.
Fehler: "Typenkonflikt"
IsNumeric
, um dies zu überprüfen.Fehler: "Zellen nicht ausgewählt"
Eine weitere Möglichkeit, um in Excel VBA auf eine ganze Zahl zu runden, ist die Verwendung der Int
-Funktion kombiniert mit einer Addition:
Sub Ganzzahl()
Dim zelle As Range
For Each zelle In Selection
zelle.Offset(0, 1).Value = Int(zelle.Value) + 1
Next zelle
End Sub
Das obige Skript rundet die Zahl ab und addiert dann 1, um die nächste ganze Zahl zu erhalten.
Hier sind einige Beispiele, wie Du die VBA-Funktionen nutzen kannst:
Aufrunden einer Liste von Zahlen in den Zellen A1 bis A10:
Aufrunden
-Makro aus. Die Ergebnisse werden in der benachbarten Spalte angezeigt.Verwendung der Ganzzahl
-Funktion:
Ganzzahl
ausführst, wird für jede Zahl in der Auswahl die nächste ganze Zahl berechnet.Application.WorksheetFunction
-Objekte, um auf Excel-Funktionen in VBA zuzugreifen.Selection
oder benannte Bereiche, um flexibler zu sein.1. Wie kann ich sicherstellen, dass eine Zahl in eine ganze Zahl konvertiert wird?
Du kannst die Funktion IsNumeric
verwenden, um zu überprüfen, ob der Wert eine Zahl ist, bevor Du mit dem Runden beginnst.
2. Kann ich die Ergebnisse in einer anderen Arbeitsmappe speichern?
Ja, Du kannst auf eine andere Arbeitsmappe zugreifen, indem Du die Arbeitsmappe referenzierst, z.B. Workbooks("NameDerArbeitsmappe.xlsx").Sheets("NameDesBlattes").Range("A1").Value
.
3. Was passiert, wenn ich negative Zahlen aufrunden möchte? Die oben genannten Methoden funktionieren auch mit negativen Zahlen. Beachte jedoch, dass das Aufrunden von -2,5 zu -2 führt, da es näher an -2 liegt.
Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden
Suche nach den besten AntwortenEntdecke unsere meistgeklickten Beiträge in der Google Suche
Top 100 Threads jetzt ansehen