Tekst VBA

Tekst jest funkcją arkusza w programie Excel, ale może być również używany w VBA podczas używania właściwości range z nią, funkcja dla tej funkcji jest podobna do funkcji arkusza i przyjmuje taką samą liczbę argumentów, które są wartościami, które muszą być przekonwertowane i określony format liczb.

Funkcja tekstowa Excel VBA

TEKST to funkcja dostępna w arkuszu, ale niestety nie jest to funkcja wbudowana w Excel VBA. Aby uzyskać dostęp do tej funkcji, musimy użyć obiektu klasy funkcji arkusza w VBA. Funkcja tekstowa w programie Excel konwertuje wartość na określony format liczbowy.

Jednym z problemów związanych z tą funkcją są argumenty. Ilekroć używamy klasy funkcji arkusza VBA, nie widzimy wyraźnej składni, podobnie jak w naszym arkuszu. Po prostu mówi „Arg1” i „Arg2”.

  • Arg1 to wartość, do której musimy zastosować formatowanie.
  • Arg2 to formatowanie, które musimy zastosować i musimy określić kod formatowania.

Przykłady funkcji tekstowych VBA w programie Excel

Poniżej znajdują się przykłady funkcji tekstowej Excel VBA.

Możesz pobrać ten szablon VBA Text Excel tutaj - szablon VBA Text Excel

Przykład 1

Pokażę wam prosty przykład TEKSTU w VBA Excel. Spójrz na poniższy kod w Visual Basic.

Kod:

 Sub Text_Example1 () Dim FormattingValue As String Dim FormattingResult As String FormattingValue = 0.564 FormattingResult = WorksheetFunction.Text (FormattingValue, "hh: mm: ss AM / PM") MsgBox FormattingResult End Sub 

Najpierw zadeklarowałem dwie zmienne jako ciąg znaków w VBA

 Dim FormattingValue As String Dim FormattingResult As String 

Do pierwszej zmiennej przypisałem numer formatowania, który musimy sformatować.

FormattingValue = 0,564

Teraz dla innej zmiennej przypisałem funkcję TEKST.

FormattingResult = WorksheetFunction.Text (FormattingValue, "hh: mm: ss AM / PM")

Jeśli zauważysz, zastosowałem formatowanie czasu, tj. „Hh: mm: ss AM / PM”

W końcu zastosowałem okno komunikatu VBA, aby pokazać wynik.

MsgBox FormattingResult

Kiedy uruchomię kod, funkcja TEKST zastosuje format czasu do liczby 0,564 i wyświetli wynik jak poniżej.

Tak więc otrzymaliśmy czas jako „ 13:32:10 ”.

Przykład nr 2

Podobnie jak w przykładzie formatu daty, w tym przykładzie wprowadziliśmy kilka drobnych zmian. Poniżej znajduje się kod.

Kod:

 Sub Text_Example2 () Dim FormattingValue As String Dim FormattingResult As String FormattingValue = 43585 FormattingResult = WorksheetFunction.Text (FormattingValue, "DD-MMM-YYYY") MsgBox FormattingResult End Sub 

Z poprzedniego kodu zmieniłem wartość formatowania z 0,565 na 43585 i zmieniłem styl formatowania na „DD-MMM-RRRR”.

Spowoduje to zastosowanie formatowania do liczby 43585 jako daty, a wynik będzie następujący.

Zastosuj formatowanie do komórek

Widzieliśmy proste przykłady, teraz przyjrzyjmy się, jak pracować z komórkami w arkuszu. W tym przykładzie spójrz na poniższe dane.

Dla wszystkich tych liczb musimy zastosować format czasu. W tym przypadku poniższy kod zastosuje formatowanie.

Kod:

 Sub Text_Example3 () Dim k As Integer For k = 1 To 10 Cells (k, 2) .Value = WorksheetFunction.Text (Cells (k, 1) .Value, "hh: mm: ss AM / PM") Next k End Pod 

Ten kod przejdzie przez 10 komórek i zastosuje formatowanie, jak poniżej.

W ten sposób za pomocą funkcji VBA TEXT możemy zastosować formatowanie liczb do komórek.