Стринг Вариабле Типе
Тип података Стринг је један од најчешћих типова података у ВБА. Он складишти „низове“ текста.
Да бисте прогласили променљиву Стринг променљиву, користите Дим Статемент (скраћено од Дименсион):
1 | Дим стрНаме као Стринг |
Да бисте променљивој доделили вредност, користите знак једнакости:
1 | стрНаме = "Фред Смитх" |
Стављање овога у процедуру изгледа овако:
12345678 | Под стрЕкампле ()'декларишу стрингЗатамните стрНаме као стринг'попуни низстрНаме = "Фред Смитх"'прикажи оквир за порукуМсгБок стрнамеЕнд Суб |
Ако покренете горњи код, приказаће се следеће поље за поруку.
Фиксна променљива стринга
Заправо постоје 2 врсте стринг променљивих - фиксна и променљива.
„Променљива“ променљива низа (приказана у претходном примеру) дозвољава вашем низу било које дужине. Ово је најчешће.
„Фиксна“ променљива низа дефинише величину низа. Фиксни низ може да садржи до 65.400 знакова.
1 | Затамните стрНаме као стринг *20 |
Када дефинишете фиксну променљиву, број знакова у променљивој је закључан, чак и ако користите мање знакова.
Обратите пажњу на размаке на доњој слици - променљива има места за остале знакове у низу јер је „Фред Смитх“ мање од 20 знакова.
Међутим, ако сте декларисали стринг без навођења дужине, тада ће низ садржати само онолико знакова колико му је прослеђено.
Прогласи променљиву стринг на модулу или глобалном нивоу
У претходном примеру, декларисали сте променљиву Стринг унутар процедуре. Варијабле декларисане процедуром могу се користити само у оквиру те процедуре.
Уместо тога, можете прогласити Стринг променљиве на модулу или глобалном нивоу.
Ниво модула
Ниво модула променљиве се декларишу на врху кодних модула са Замутити изјава.
Ове променљиве се могу користити са било којом процедуром у том кодном модулу.
Глобални ниво
Глобални ниво променљиве се такође декларишу на врху модула кода. Међутим, уместо да користите Замутити изјаву, користите Јавно изјаву која означава да је променљива стринг доступна за коришћење током целог вашег ВБА пројекта.
1 | Јавни стрНаме као Стринг |
Ако сте декларисали променљиву стринга на нивоу модула и користили је у другом модулу, дошло би до грешке.
Међутим, ако користите кључну реч Публиц за декларисање променљиве низа, грешка се неће догодити и процедура ће савршено радити.
Претворите вредности сачуване као Стринг
Можда ћете у неком тренутку имати вредности у Екцелу које су ускладиштене као текст - на пример, можда сте увезли ЦСВ датотеку која је можда унела текст уместо бројева.
Имајте на уму да је вредност у А1 поравната лево, што означава текстуалну вредност.
Можете користити а ВБА функција могу се користити за претварање ових бројева у текст
12345678 | Суб ЦонвертВалуе ()'попуни низстрКти = Распон ("А1")'попуни дупли низдблКти = стрКти'попуните опсег бројемОпсег ("А1") = дблКтиЕнд Суб |
Када покренете код, број ће се померити удесно, што значи да је сада ускладиштен као број.
Ово је посебно корисно када се крећете кроз велики распон ћелија.
123456789101112131415 | Суб ЦонвертВалуе ()Дим стрКти Ас Стринг, дблКти Ас ДоублеДим рв Ас Интегер, и Ас Интегер'броји редове за конверзијурв = Опсег ("А1", Опсег ("А1"). Крај (клДовн)). Ровс.Цоунт'прођите кроз ћелије и сваку претворите у бројЗа и = 0 За рв - 1'попуни низстрКти = Опсег ("А1"). Помак (и, 0)'попуни дупли низдблКти = стрКти'попуните опсег бројемОпсег ("А1"). Помак (и, 0) = дблКтиЗатим самЕнд Суб |
Резултат ће бити да се све ћелије затим претварају у бројеве
Уморни сте од тражења примера ВБА кода? Испробајте АутоМацро!
Претвори низ ускладиштен као вредности
Слично, можда постоје вредности које морате претворити из низа у вредност - на пример, ако вам је потребна почетна нула на телефонском броју.
123456789101112131415 | Суб ЦонвертСтринг ()Дим стрПхоне Ас Стринг, дблПхоне Ас ДоублеДим рв Ас Интегер, и Ас Интегер'броји редове за конверзијурв = Опсег ("А1", Опсег ("А1"). Крај (клДовн)). Ровс.Цоунт'прођите кроз ћелије и сваку претворите у бројЗа и = 0 За рв - 1'попуни низдблПхоне = Распон ("А1"). Помак (и, 0)'попуни дупли низстрПхоне = "'0" & дблПхоне'попуните опсег бројемОпсег ("А1"). Помак (и, 0) = стрпхонеЗатим самЕнд Суб |
Имајте на уму да морате започети текстуални низ са апострофом (‘), пре нуле како бисте Екцел -у рекли да унесе вредност као стринг.