Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

WorksheetFunction.RoundUp - was ist falsch?

Forumthread: WorksheetFunction.RoundUp - was ist falsch?

WorksheetFunction.RoundUp - was ist falsch?
Stefan
Hallo zusammen,
bei der folgenden Funktion krieg ich einen Fehler:
.Cells(iCntRows, 42) = WorksheetFunction.RoundUp(((.Cells(iCntRows, 41) - 1) / 30) * 21)
"Argument ist nicht optional"
Was habe ich falsch gemacht?
Danke
Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
ein paar Fragen ...
13.10.2011 10:59:39
Matthias
Hallo

  • Da gibts ein With (also welche Tabelle)?

  • Was steht in .Cells(iCntRows, 42) ?

  • Was steht in .Cells(iCntRows, 41) ?

  • Welchen Wert hat iCntRows ?

  • Welches Ergebnis erwartest Du und warum?


Gruß Matthias
Anzeige
AW: ein paar Fragen ...
13.10.2011 11:01:38
Stefan
:) stimmt, sieht ein bisschen cryptisch aus :)
Die Formel soll so sein:
Cells(1,1) = WorksheetFunction.RoundUp(((Cells(10, 10) - 1) / 30) * 21)
Es kommt ein Wert raus = 136,58
Diesen will ich auf 137 aufrunden.
Danke für Deine Hinweise.
.Round(Range("A1"), 0)
13.10.2011 11:10:57
Matthias
Hallo
Application.WorksheetFunction.Round(Range("A1"), 0)
oder statt Range("A1") eben
Cells(1,1)
Gruß Matthias
Anzeige
ja, funktioniert. Danke
13.10.2011 11:20:46
Stefan
:)
;
Anzeige
Anzeige

Infobox / Tutorial

Verwendung von WorksheetFunction.RoundUp in Excel VBA


Schritt-für-Schritt-Anleitung

Um die Funktion WorksheetFunction.RoundUp in Excel VBA korrekt zu verwenden, folge diesen Schritten:

  1. Öffne den Visual Basic for Applications (VBA)-Editor:

    • Drücke ALT + F11 in Excel.
  2. Füge einen neuen Modul hinzu:

    • Klicke im Menü auf Einfügen und wähle Modul.
  3. Schreibe den VBA-Code:

    • Verwende die folgende Struktur:
    Sub BeispielRoundUp()
       Dim iCntRows As Integer
       iCntRows = 1 ' Setze den gewünschten Zeilenindex
    
       ' Berechne den Wert und runde ihn auf
       Cells(iCntRows, 42) = Application.WorksheetFunction.RoundUp(((Cells(iCntRows, 41) - 1) / 30) * 21, 0)
    End Sub
  4. Führe das Makro aus:

    • Drücke F5 oder wähle Ausführen aus dem Menü.

Häufige Fehler und Lösungen

  • Fehler: "Argument ist nicht optional"

    • Dieser Fehler tritt auf, wenn ein Argument fehlt. Stelle sicher, dass du den zweiten Parameter für die Anzahl der Dezimalstellen angibst, z.B. 0 für ganze Zahlen.
  • Falsche Zellreferenzen

    • Überprüfe, ob die Zellreferenzen korrekt sind. In deinem Fall sollte Cells(iCntRows, 41) einen Wert enthalten, der für die Berechnung sinnvoll ist.

Alternative Methoden

Du kannst auch andere Funktionen verwenden, um Werte aufzurunden, wie zum Beispiel:

  • Excel-Funktion direkt in einer Zelle:

    =ROUNDUP((A1-1)/30*21, 0)
  • Verwendung von Application.Round:

    Cells(iCntRows, 42) = Application.Round(((Cells(iCntRows, 41) - 1) / 30) * 21, 0)

Beachte, dass Round anders funktioniert und auf die nächste ganze Zahl runden kann.


Praktische Beispiele

Hier sind einige Beispiele, wie du WorksheetFunction.RoundUp in verschiedenen Szenarien verwenden kannst:

  1. Einfache Verwendung:

    Cells(1, 1) = Application.WorksheetFunction.RoundUp(136.58, 0) ' Ergebnis: 137
  2. In einer Schleife:

    For i = 1 To 10
       Cells(i, 2) = Application.WorksheetFunction.RoundUp(Cells(i, 1).Value, 0)
    Next i

Tipps für Profis

  • Verwende Option Explicit am Anfang deiner Module, um sicherzustellen, dass alle Variablen deklariert werden. Dies hilft, Fehler zu vermeiden.
  • Nutze Debug.Print zur Fehlersuche, um den Wert von Variablen während der Ausführung zu überprüfen.
  • Experimentiere mit den verschiedenen Funktionen in Application.WorksheetFunction für noch mehr Möglichkeiten beim Runden.

FAQ: Häufige Fragen

1. Wie kann ich sicherstellen, dass ich die richtige Funktion verwende? Stelle sicher, dass du die richtige Syntax verwendest und die Argumente korrekt sind. Überprüfe auch, ob du Application. vor WorksheetFunction setzt.

2. Welche Excel-Version benötige ich? Die beschriebenen Funktionen sind in Excel 2010 und späteren Versionen verfügbar. Stelle sicher, dass du eine kompatible Version verwendest.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige