2016-08-03 5 views
0

Ich schrieb einen Code in VBA, die Werte aus einer Arbeitsmappe und kopiert sie in eine andere Arbeitsmappe. Also zum Beispiel in Zelle G20 werde ich 45 678 haben Der Code rundet dann diese Zahl auf 46 000, und dann brauche ich eine Funktion, um die letzten 3 Zahlen zu löschen, wenn die Zahl groß genug ist, die If-Anweisung unten verwendend. Ich denke, der Inhalt ist richtig, aber ich glaube nicht, dass ich es den richtigen Weg nenne.Aufruf Funktion/Sub in Code Vba

DSA.Worksheets(1).Range("G10").Value = Application.WorksheetFunction.Round(tax_declaration.Worksheets(1)Range("I72").Value, -3) 
DSA.Worksheets(1).Range("G11").Value = Application.WorksheetFunction.Round(Val(Application.WorksheetFunction.Sum(Range("I25:I27"))), -3) 

Call thousand(DSA.Worksheets(1).Range("G10")) 

End Sub 

Sub thousand(i As Variant) 

If Right(i, 3) = "000" Then 
    i = Left(i, Len(i) - 3) 
End If 

End Sub` 

Wie könnte ich eine Funktion wie meine If-Anweisung zu erstellen, und es zu Schleife verwenden, um durch alle meine ‚DSA.Worksheets (1) Ranges‘? - Ich habe mehrere davon.

Vielen Dank im Voraus!

+0

Was Sie tun Mittelwert - Schleife durch alle Arbeitsblätter? Oder mehrere Bereiche im selben Arbeitsblatt durchlaufen? – BruceWayne

+0

Ich meinte Schleife durch mehrere Bereiche in demselben Arbeitsblatt, sorry, wenn es nicht klar war! – lo1ngru

Antwort

1

Ich bin nicht ganz sicher, was Sie meinen, aber statt der Unter nur eine Funktion verwenden und unterschiedliche geben i:

Function thousand(i As Variant) As Variant 

If Right(i, 3) = "000" Then 
    thousand = Left(i, Len(i) - 3) 
End If 

End Function 

Dann einfach tun Sie etwas entlang der Linien von debug.print thousand(DSA.Worksheets(1).Range("G10"))

+0

Wenn ich versuche, den Marco auszuführen, bekomme ich die Fehlermeldung "Argument nicht optional" für tausend. Ich änderte die Funktion, um tausend als eine Variante zu deklarieren, aber ich bekomme immer noch "Argument nicht optional für' Debug.Print tausend (DSA.Worksheets (1) .Range ("G10")) 'Weißt du warum? Ich denke ich Vielleicht musst du irgendwo ein 'Set' hinzufügen! – lo1ngru