Тип променлива на низ
Типът данни String е един от най -често срещаните типове данни във VBA. Той съхранява „низове“ от текст.
За да декларирате променлива String променлива, вие използвате Dim Statement (съкращение от Dimension):
1 | Dim strName като String |
За да присвоите стойност на променлива, използвате знака за равенство:
1 | strName = "Фред Смит" |
Поставянето на това в процедура изглежда така:
12345678 | Sub strExample ()'декларирайте низЗатъмнете strName като низ'попълнете низаstrName = "Фред Смит"'покажете полето за съобщенияMsgBox strnameEnd Sub |
Ако изпълните горния код, ще се покаже следното поле със съобщение.
Фиксирана низова променлива
Всъщност има 2 вида низови променливи - фиксирани и променливи.
Променливата на низа „променлива“ (показана в предишния пример) позволява на вашия низ да бъде с всякаква дължина. Това е най -често срещаното.
„Фиксираната“ променлива на низ определя размера на низа. Фиксираният низ може да съдържа до 65 400 знака.
1 | Затъмнете strName като низ *20 |
Когато дефинирате фиксирана променлива, броят на знаците в променливата се заключва на място, дори ако използвате по -малко знаци.
Обърнете внимание на интервалите в графиката по -долу - променливата има запазени места за останалите знаци в низа, тъй като „Fred Smith“ е по -малко от 20 знака.
Ако обаче сте декларирали низ, без да посочвате дължината, тогава низът ще съдържа само толкова знаци, колкото са му предадени.
Обявете променлива на низ на модулно или глобално ниво
В предишния пример декларирахте променливата String в рамките на процедура. Променливите, декларирани с процедура, могат да се използват само в рамките на тази процедура.
Вместо това можете да декларирате String променливи на модулно или глобално ниво.
Модулно ниво
Ниво на модул променливите се декларират в горната част на кодовите модули с Дим изявление.
Тези променливи могат да се използват с всяка процедура в този кодов модул.
Глобално ниво
Глобално ниво променливите също са декларирани в горната част на кодовите модули. Въпреки това, вместо да използвате Дим изявление, използвате Обществен изявление, което показва, че променливата на низ е достъпна за използване във вашия VBA проект.
1 | Публично strName като String |
Ако декларирате низовата променлива на ниво модул и използвате в друг модул, ще възникне грешка.
Ако обаче използвате ключовата дума Public за деклариране на низовата променлива, грешката няма да възникне и процедурата ще работи перфектно.
Конвертиране на стойности, съхранени като String
Може да има момент, в който имате стойности в Excel, които се съхраняват като текст - например може да сте импортирали CSV файл, който може да е въвел текст вместо числа.
Обърнете внимание, че стойността в A1 е подравнена вляво, показваща текстова стойност.
Можете да използвате a VBA функция може да се използва за преобразуване на тези числа в текст
12345678 | Sub ConvertValue ()'попълнете низаstrQty = Обхват ("A1")'попълнете двойката с низdblQty = strQty'попълнете диапазона с числотоДиапазон ("A1") = dblQtyEnd Sub |
След като стартирате кода, номерът ще се премести вдясно, което показва, че сега се съхранява като номер.
Това е особено полезно, когато преминете през голям диапазон от клетки.
123456789101112131415 | Sub ConvertValue ()Dim strQty As String, dblQty As DoubleDim rw като цяло число, i като цяло число'пребройте редовете за преобразуванеrw = Диапазон ("A1", Обхват ("A1"). Край (xlDown)). Rows.Count'цикъл през клетките и преобразуване на всяка от тях в числоЗа i = 0 За rw - 1'попълнете низаstrQty = Обхват ("A1"). Офсет (i, 0)'попълнете двойката с низdblQty = strQty'попълнете диапазона с числотоДиапазон ("A1"). Офсет (i, 0) = dblQtyСледва iEnd Sub |
Резултатът ще бъде, че всички клетки след това се преобразуват в числа
Уморени ли сте от търсене на примери за VBA код? Опитайте AutoMacro!
Конвертиране на низ, съхранен като стойности
По същия начин може да има стойности, които трябва да преобразувате от низ в стойност - например, ако имате нужда от водеща нула на телефонен номер.
123456789101112131415 | Sub ConvertString ()Dim strPhone As String, dblPhone As DoubleDim rw като цяло число, i като цяло число'пребройте редовете за конвертиранеrw = Диапазон ("A1", Обхват ("A1"). Край (xlDown)). Rows.Count'цикъл през клетките и преобразуване на всяка от тях в числоЗа i = 0 За rw - 1'попълнете низаdblPhone = Обхват ("A1"). Офсет (i, 0)'попълнете двойката с низstrPhone = "'0" & dblPhone'попълнете диапазона с числотоОбхват ("A1"). Офсет (i, 0) = strphoneСледва iEnd Sub |
Имайте предвид, че трябва да започнете текстовия низ с апостроф (‘), преди нулата, за да кажете на Excel да въведе стойността като низ.