Ten samouczek pokaże, jak używać funkcji tekstowej w VBA.
Funkcja Tekst jest używana w arkuszu programu Excel do zwracania części ciągu w określonym formacie. Funkcja Text nie jest funkcją VBA, ale można jej używać w VBA, odwołując się do obiektu Worksheet Function.
Arkusz Funkcja.Tekst
Składnia w VBA byłaby zatem następująca:
=WorksheetFunction.Text (Arg1, Arg2)
gdzie Arg1 jest oryginalnym ciągiem, a Arg2 jest formatem ciągu, który chcemy zwrócić.
1234567 | PodtestWSFunction()Dim dte As StringDim strD jako ciągdte = "08/05/2021"strD= WorksheetFunction.Text(dte, "mmmm")MsgBox strDNapis końcowy |
W powyższym przykładzie zmienna łańcuchowa dte przechowuje datę. Funkcja Text zwraca następnie część daty dotyczącą miesiąca.
Formatowanie liczb za pomocą funkcji tekstu
Możemy użyć funkcji tekstowej do formatowania liczb w naszym kodzie VBA.
1234567 | Podformat Waluta()Dim strNum As StringDim strFormat jako ciągstrNum = "75896.125"strFormat = WorksheetFunction.Text(strNum, "$#,##0.00")MsgBox strFormatNapis końcowy |
Ciąg zwrócony w powyższym przykładzie to 75 896,13 $.
Inne przykłady formatowania liczb przy użyciu funkcji tekstu to:
12345678 | =Funkcja arkusza roboczego.Tekst(75896.125, "0")to zwróci: „75896”=Funkcja arkusza roboczego.Tekst(75896.125, "0.0")to zwróci: „75896.1”=WorksheetFunction.Text(75896.125, "#,##0")to zwróci: "75,896" |
Jednak Excel ma wbudowaną funkcję VBA, której możemy użyć zamiast funkcji Tekst, jeśli chcemy sformatować daty i liczby w VBA. Jest to znane jako funkcja Format.
Funkcja formatu VBA
Biorąc powyższy przykład, zamiast używać WorksheetFunction.Text, możemy po prostu użyć funkcji Format, aby osiągnąć te same wyniki.
12345678 | =Format(75896.125, "0")to zwróci: „75896”=Format(75896.125, "0.0")to zwróci: „75896.1”=Format(75896.125, "#,##0")to zwróci: "75,896" |
Podobnie możemy użyć funkcji Format, aby sformatować fragmenty daty w ciągu.
1234567 | Funkcja podrzędnego formatu testowego()Dim dte As StringDim strD jako ciągdte = "08/05/2021"strD= Format(dte, "mmmm")MsgBox strDNapis końcowy |