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
Um die Funktion WorksheetFunction.RoundUp in Excel VBA korrekt zu verwenden, folge diesen Schritten:
Öffne den Visual Basic for Applications (VBA)-Editor:
ALT + F11 in Excel.Füge einen neuen Modul hinzu:
Einfügen und wähle Modul.Schreibe den VBA-Code:
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
Führe das Makro aus:
F5 oder wähle Ausführen aus dem Menü.Fehler: "Argument ist nicht optional"
0 für ganze Zahlen.Falsche Zellreferenzen
Cells(iCntRows, 41) einen Wert enthalten, der für die Berechnung sinnvoll ist.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.
Hier sind einige Beispiele, wie du WorksheetFunction.RoundUp in verschiedenen Szenarien verwenden kannst:
Einfache Verwendung:
Cells(1, 1) = Application.WorksheetFunction.RoundUp(136.58, 0) ' Ergebnis: 137
In einer Schleife:
For i = 1 To 10
Cells(i, 2) = Application.WorksheetFunction.RoundUp(Cells(i, 1).Value, 0)
Next i
Option Explicit am Anfang deiner Module, um sicherzustellen, dass alle Variablen deklariert werden. Dies hilft, Fehler zu vermeiden.Debug.Print zur Fehlersuche, um den Wert von Variablen während der Ausführung zu überprüfen.Application.WorksheetFunction für noch mehr Möglichkeiten beim Runden.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.