Typ danych ciągu VBA (zmienna Dim)

Typ zmiennej ciągu

Typ danych String jest jednym z najczęstszych typów danych w VBA. Przechowuje „ciągi” tekstu.

Aby zadeklarować zmienną zmienną String, użyj instrukcji Dim (skrót od Dimension):

1 Dim strName jako String

Aby przypisać wartość do zmiennej, użyj znaku równości:

1 strName = "Fredyt Kowalski"

Umieszczenie tego w procedurze wygląda tak:

12345678 Sub strPrzykład()'deklaruj ciągDim strName jako ciąg'wypełnij ciągstrName = "Fredyt Kowalski"'pokaż okno wiadomościNazwa strony MsgBoxNapis końcowy

Jeśli uruchomisz powyższy kod, pojawi się następujący komunikat.

Stała zmienna ciągu

W rzeczywistości istnieją 2 typy zmiennych łańcuchowych - stałe i zmienne.

Zmienna ciągu „zmienna” (pokazana w poprzednim przykładzie) pozwala na uzyskanie dowolnej długości ciągu. To jest najczęstsze.

Zmienna „stała” string określa rozmiar ciągu. Stały ciąg może zawierać do 65 400 znaków.

1 Dim strName jako ciąg *20

Gdy definiujesz zmienną stałą, liczba znaków w zmiennej jest zablokowana, nawet jeśli użyjesz mniejszej liczby znaków.

Zwróć uwagę na spacje na poniższej grafice - zmienna ma miejsce na resztę znaków w ciągu, ponieważ „Fred Smith” ma mniej niż 20 znaków.

Jeśli jednak zadeklarowałeś ciąg bez określenia długości, ciąg będzie zawierał tylko tyle znaków, ile zostało do niego przekazanych.

Zadeklaruj zmienną łańcuchową na poziomie modułu lub globalnego

W poprzednim przykładzie zadeklarowałeś zmienną String w ramach procedury. Zmienne zadeklarowane za pomocą procedury mogą być używane tylko w ramach tej procedury.

Zamiast tego można zadeklarować zmienne typu String na poziomie modułu lub globalnym.

Poziom modułu

Poziom modułu zmienne są deklarowane na górze modułów kodu z Ciemny oświadczenie.

Zmiennych tych można używać z dowolną procedurą w tym module kodu.

Poziom globalny

Poziom globalny zmienne są również deklarowane na górze modułów kodu. Jednak zamiast używać Ciemny oświadczenie, używasz Publiczny oświadczenie, aby wskazać, że zmienna ciągu jest dostępna do użycia w całym projekcie VBA.

1 Public strName jako String

Jeśli zadeklarowałeś zmienną łańcuchową na poziomie modułu i użyto jej w innym module, wystąpiłby błąd.

Jeśli jednak użyjesz słowa kluczowego Public do zadeklarowania zmiennej ciągu, błąd nie wystąpi i procedura będzie działać idealnie.

Konwertuj wartości przechowywane jako ciąg

Może się zdarzyć, że masz wartości w programie Excel, które są przechowywane jako tekst - na przykład mogłeś zaimportować plik CSV, który mógł wprowadzić tekst zamiast liczb.

Zauważ, że wartość w A1 jest wyrównana do lewej, co wskazuje na wartość tekstową.

Możesz użyć Funkcja VBA może służyć do konwersji tych liczb na tekst

12345678 SubkonwersjiWartość()'wypełnij ciągstrQty = Zakres("A1")'wypełnij podwójne ciągiemdblIl = strIl'wypełnij zakres liczbąZakres("A1") = dblQtyNapis końcowy

Po uruchomieniu kodu numer przesunie się w prawo, wskazując, że jest teraz zapisany jako numer.

Jest to szczególnie przydatne, gdy przeglądasz duży zakres komórek.

123456789101112131415 SubkonwersjiWartość()Dim strQty As String, dblQty As DoubleDim rw As Integer, i As Integer'policz wiersze do konwersjirw = Range("A1", Range("A1").End(xlDown)).Rows.Count„przeprowadź pętlę przez komórki i przekonwertuj każdą z nich na liczbę”Dla i = 0 Do rw - 1'wypełnij ciągstrQty = Zakres("A1").Przesunięcie(i, 0)'wypełnij podwójne ciągiemdblIl = strIl'wypełnij zakres liczbąZakres("A1").Przesunięcie(i, 0) = dblQtyDalej jaNapis końcowy

W rezultacie wszystkie komórki zostaną przekonwertowane na liczby

Masz dość wyszukiwania przykładów kodu VBA? Wypróbuj Automakro!

Konwertuj ciąg przechowywany jako wartości

Podobnie mogą istnieć wartości, które trzeba przekonwertować z ciągu na wartość - na przykład, jeśli w numerze telefonu wymagane jest początkowe zero.

123456789101112131415 Sub ConvertString()Dim strPhone As String, dblPhone As DoubleDim rw As Integer, i As Integer'policz wiersze do konwersjirw = Range("A1", Range("A1").End(xlDown)).Rows.Count„przeprowadź pętlę przez komórki i przekonwertuj każdą z nich na liczbę”Dla i = 0 Do rw - 1'wypełnij ciągdblPhone = Zakres("A1").Przesunięcie(i, 0)'wypełnij podwójne ciągiemstrPhone = "'0" & dblPhone'wypełnij zakres liczbąZakres("A1").Offset(i, 0) = strphoneDalej jaNapis końcowy

Zwróć uwagę, że musisz rozpocząć ciąg tekstowy od apostrofu (‘), przed zerem, aby poinformować program Excel o wprowadzeniu wartości jako ciągu.

Będziesz pomóc w rozwoju serwisu, dzieląc stronę ze swoimi znajomymi

wave wave wave wave wave