Екцел ВБА распони и ћелије

Домети и ћелије у ВБА

Екцел табеле чувају податке у ћелијама. Ћелије су распоређене у редове и колоне. Свака ћелија се може идентификовати тачком пресека њеног реда и колоне (примери Б3 или Р3Ц2).

Екцел опсег се односи на једну или више ћелија (нпр. А3: Б4)

Адреса ћелије

Ознака А1

У запису А1, ћелија се означава словом колоне (од А до КСФД), а затим бројем реда (од 1 до 1.048.576).

У ВБА можете позвати било коју ћелију користећи Објекат домета.

123456789 'Погледајте ћелију Б4 на тренутно активном листуМсгБок опсег ("Б4")'Погледајте ћелију Б4 на листу под називом' Подаци 'МсгБок радни листови ("Подаци"). Распон ("Б4")'Погледајте ћелију Б4 на листу под називом' Подаци 'у другој ОТВОРЕНОЈ радној свесципод називом „Моји подаци“МсгБок радне свеске ("Моји подаци"). Радни листови ("Подаци"). Распон ("Б4")

Ознака Р1Ц1

У запису Р1Ц1 ћелија се означава са Р, затим редним бројем, затим словом „Ц“, а затим бројем колоне. нпр. Б4 у ознаци Р1Ц1 означиће Р4Ц2. У ВБА користите Ћелије Објекат да бисте користили ознаку Р1Ц1:

12 'Погледајте ћелију Р [6] Ц [4], тј. Д6Ћелије (6, 4) = "Д6"

Опсег ћелија

Ознака А1

Да бисте се позвали на више ћелија, користите „:“ између адресе почетне ћелије и адресе последње ћелије. Следеће ће се односити на све ћелије од А1 до Д10:

1 Домет ("А1: Д10")

Ознака Р1Ц1

Да бисте се позвали на више ћелија, користите „,“ између адресе почетне ћелије и адресе последње ћелије. Следеће ће се односити на све ћелије од А1 до Д10:

1 Опсег (ћелије (1, 1), ћелије (10, 4))

Писање на ћелије

Да бисте записали вредности у ћелију или суседну групу ћелија, једноставно се осврните на опсег, ставите знак =, а затим напишите вредност за складиштење:

12345678910 'Складиштите Ф5 у ћелији са адресом Ф6Опсег ("Ф6") = "Ф6"'Складиштите Е6 у ћелији са адресом Р [6] Ц [5], тј. Е6Ћелије (6, 5) = "Е6"'Складиштите А1: Д10 у распону А1: Д10Опсег ("А1: Д10") = "А1: Д10"'илиОпсег (ћелије (1, 1), ћелије (10, 4)) = "А1: Д10"

Читање из ћелија

Да бисте прочитали вредности из ћелија, једноставно се обратите променљивој да бисте сачували вредности, ставите знак =, а затим погледајте распон који треба да се прочита:

1234567891011 Дим вал1Дим вал2„Читајте из ћелије Ф6вал1 = Распон ("Ф6")„Читајте из ћелије Е6вал2 = Ћелије (6, 5)МсгБок вал1Мсгбок вал2

Напомена: Да бисте сачували вредности из опсега ћелија, морате да користите низ уместо једноставне променљиве.

Не суседне ћелије

Да бисте се позвали на суседне ћелије, користите зарез између адреса ћелија:

123456 'Складиштите 10 у ћелијама А1, А3 и А5Опсег ("А1, А3, А5") = 10'Складиштите 10 у ћелијама А1: А3 и Д1: Д3)Опсег ("А1: А3, Д1: Д3") = 10

Пресек ћелија

Да бисте се позвали на суседне ћелије, користите размак између адреса ћелија:

123 'Чувајте' Цол Д 'у Д1: Д10'што је уобичајено између А1: Д10 и Д1: Ф10Опсег ("А1: Д10 Д1: Г10") = "Колона Д"

Одступање од ћелије или опсега

Користећи функцију Помак, можете премјестити референцу из датог распона (ћелије или групе ћелија) за наведени број_средова и број_колона.

Оффсет синтакса

Ранге.Оффсет (број_страна, број_колона)

Одмак од ћелије

12345678910111213141516 'ОФФСЕТ из ћелије А1'Погледајте саму ћелију'Премести 0 редова и 0 колонаОпсег ("А1"). Помак (0, 0) = "А1"'Премести 1 ред и 0 колонаОпсег ("А1"). Помак (1, 0) = "А2"'Премести 0 редова и 1 колонуОпсег ("А1"). Помак (0, 1) = "Б1"'Премести 1 ред и 1 колонуОпсег ("А1"). Помак (1, 1) = "Б2"'Премести 10 редова и 5 колонаОпсег ("А1"). Помак (10, 5) = "Ф11"

Одступање од распона

123 'Померите референцу на опсег А1: Д4 за 4 реда и 4 колоне'Нова референца је Е5: Х8Опсег ("А1: Д4"). Помак (4,4) = "Е5: Х8"

Постављање референце на опсег

Да бисте доделили опсег променљивој опсегу: декларишите променљиву типа Ранге, а затим помоћу команде Сет подесите опсег. Имајте на уму да морате користити команду СЕТ јер је РАНГЕ објекат:

12345678 'Прогласите променљиву РангеЗатамните миРанге као Ранге'Подесите променљиву на опсег А1: Д4Подеси миРанге = Ранге ("А1: Д4")'Штампа $ А $ 1: $ Д $ 4МсгБок миРанге.Аддресс

Промените величину опсега

Метода промене величине објекта Ранге мења димензију референтног опсега:

1234567 Дим миРанге Ас Ранге'Распон за промену величинеПодеси миРанге = Ранге ("А1: Ф4")'Штампа $ А $ 1: $ Е $ 10Дебуг.Принт миРанге.Ресизе (10, 5) .Аддресс

Горња лева ћелија опсега промењене величине иста је као горња лева ћелија оригиналног опсега

Промените величину синтаксе

Ранге.Ресизе (нумбер_оф_ровс, нумбер_оф_цолумнс)

ОФФСЕТ вс Ресизе

Одступање не мења димензије опсега, већ га помера за наведени број редова и колона. Промена величине не мења положај оригиналног опсега, већ мења димензије на наведени број редова и колона.

Све ћелије у листу

Објекат Ћелије се односи на све ћелије на листу (1048576 редова и 16384 колоне).

12 'Обриши све ћелије на радним листовимаЋелије.Очисти

УседРанге

Својство УседРанге даје вам правоугаони опсег од горње леве ћелије која се користи до ћелије до десне доње коришћене ћелије активног листа.

1234567 Дим вс Ас ВорксхеетПоставите вс = АцтивеСхеет'$ Б $ 2: $ Л $ 14 ако је Л2 прва ћелија са било којом вредношћу'и Л14 је последња ћелија са било којом вредношћу на'активни листДебуг.Принт вс.УседРанге.Аддресс

ЦуррентРегион

Својство ЦуррентРегион вам даје суседни правоугаони опсег од горње леве ћелије до ћелије која се користи десно и која садржи референцирану ћелију/опсег.

1234567891011 Затамните миРанге Ас РангеСет миРанге = Ранге ("Д4: Ф6")'Штампа $ Б $ 2: $ Л $ 14„Ако постоји попуњена путања од Д4: Ф16 до Б2 И Л14Дебуг.Принт миРанге.ЦуррентРегион.Аддресс„Такође се можете позвати на једну почетну ћелијуСет миРанге = Ранге ("Д4") 'Штампа $ Б $ 2: $ Л $ 14

Ранге Пропертиес

Можете добити адресу, број реда/колоне ћелије и број редова/колона у опсегу како је доле наведено:

123456789101112131415161718192021 Затамните миРанге Ас РангеСет миРанге = Ранге ("А1: Ф10")'Штампа $ А $ 1: $ Ф $ 10Дебуг.Принт миРанге.АддрессПодеси миРанге = Распон ("Ф10")'Штампа 10 за 10. редДебуг.Принт миРанге.Ров'Штампа 6 за колону Ф.Дебуг.Принт миРанге.ЦолумнПостави миРанге = Распон ("Е1: Ф5")'Штампа 5 за број редова у дометуДебуг.Принт миРанге.Ровс.Цоунт'Штампа 2 за број колона у опсегуДебуг.Принт миРанге.Цолумнс.Цоунт

Последња ћелија у листу

Можете користити Ровс.Цоунт и Колоне.Број својства са Ћелије приговор за добијање последње ћелије на листу:

1234567891011 'Одштампајте број последњег реда'Штампа 1048576Дебуг.Принт "Ровс ин тхе схеет:" & Ровс.Цоунт'Одштампајте број последње колоне'Штампа 16384Дебуг.Принт "Цолумнс ин тхе схеет:" & Цолумнс.Цоунт'Одштампајте адресу последње ћелије'Штампа $ КСФД $ 1048576Дебуг.Принт "Аддресс оф Ласт Целл ин тхе схеет:" & Целлс (Ровс.Цоунт, Цолумнс.Цоунт)

Последњи коришћени број реда у колони

Својство ЕНД води вас до последње ћелије у опсегу, а Енд (клУп) вас води до прве коришћене ћелије из те ћелије.

123 Дим ластРов Ас ЛонгластРов = Ћелије (Ровс.Цоунт, "А"). Енд (клУп) .Ров

Број последње коришћене колоне у реду

123 Дим ластЦол Ас ЛонгластЦол = Целлс (1, Цолумнс.Цоунт) .Енд (клТоЛефт) .Цолумн

Својство ЕНД води вас до последње ћелије у опсегу, а Енд (клТоЛефт) вас води лево до прве коришћене ћелије из те ћелије.

Такође можете да користите својства клДовн и клТоРигхт за навигацију до првих доњих или десних коришћених ћелија тренутне ћелије.

Својства ћелија

Цоммон Пропертиес

Ево кода за приказ уобичајених својстава ћелија

12345678910111213141516171819202122 Дим целл Ас РангеПостави ћелију = опсег ("А1")ћелија.АктивирајДебуг.Принт целл.Аддресс'Одштампајте $ А $ 1Дебуг.Принт целл.Валуе'Штампа 456' АдресаДебуг.Принт целл.Формула'Штампа = СУМ (Ц2: Ц3)'КоментарДебуг.Принт целл.Цоммент.Тект'СтилДебуг.Принт целл.Стиле'Формат ћелијеДебуг.Принт целл.ДисплаиФормат.НумберФормат

Фонт ћелије

Објекат Целл.Фонт садржи својства Целл Фонт:

1234567891011121314151617181920 Дим целл Ас РангеПостави ћелију = опсег ("А1")„Обичан, курзив, подебљан и подебљан курзивцелл.Фонт.ФонтСтиле = "Подебљани курзив"' Исто каоцелл.Фонт.Болд = Тачноцелл.Фонт.Италиц = Тачно'Подесите фонт на Цоуриерцелл.Фонт.ФонтСтиле = "Курир"'Подеси боју фонтацелл.Фонт.Цолор = вбБлуе'илицелл.Фонт.Цолор = РГБ (255, 0, 0)'Подеси величину фонтацелл.Фонт.Сизе = 20

Копирање и лепљење

Залепи све

Опсези/ћелије се могу копирати и залепити са једне локације на другу. Следећи код копира сва својства изворног опсега у одредишни опсег (еквивалентно ЦТРЛ-Ц и ЦТРЛ-В)

1234567 „Једноставна копијаОпсег ("А1: Д20"). КопирајРадни листови ("Лист2"). Распон ("Б10"). Залепи'или'Копирај са тренутног листа на лист под називом' Схеет2 'Опсег ("А1: Д20"). Одредиште за копирање: = Радни листови ("Лист 2"). Опсег ("Б10")

Специјална паста

Одабрана својства изворног опсега могу се копирати на одредиште помоћу опције ПАСТЕСПЕЦИАЛ:

123 'Залепите опсег само као вредностиОпсег ("А1: Д20"). КопирајРадни листови ("Схеет2"). Распон ("Б10"). ПастеСпециал Пасте: = клПастеВалуес

Ево могућих опција за опцију Залепи:

12345678910111213 'Залепи посебне врстеклПастеАллклПастеАллЕкцептБордерсклПастеАллМергингЦондитионалФорматсклПастеАллУсингСоурцеТхемеклПастеЦолумнВидтхсклПастеЦомментсклПастеФорматсклПастеФормуласклПастеФормуласАндНумберФорматсклПастеВалидатионклПастеВалуесклПастеВалуесАндНумберФорматс

АутоФит Садржај

Величина редова и колона може се променити тако да одговара садржају помоћу кода испод:

12345 'Промените величину редова 1 до 5 тако да одговара садржајуРедови ("1: 5"). Аутоматско прилагођавање'Промените величину колона А у Б тако да одговара садржајуКолоне ("А: Б"). Аутоматско прилагођавање

Још примера опсега

Препоручује се да користите Макро снимач док изводите потребне радње путем графичког интерфејса. Помоћи ће вам да разумете различите доступне опције и како их користити.

За сваки

Лакше је проћи кроз опсег помоћу За сваки конструисати као што је приказано испод:

123 За сваку ћелију у опсегу ("А1: Б100")'Учини нешто са ћелијомСледећа ћелија

На свакој итерацији петље једна ћелија у опсегу се додељује променљивој ц и за ту ћелију се извршавају изрази у петљи Фор. Петља излази када се све ћелије обраде.

Врста

Сортирање је метода Ранге објекта. Распон можете сортирати тако што ћете навести опције за сортирање у Ранге.Сорт. Доњи код ће сортирати колоне А: Ц на основу кључа у ћелији Ц2. Редослед сортирања може бити клАсцендинг или клДесцендинг. Заглавље: = клДа треба користити ако је први ред ред заглавља.

12 Колоне ("А: Ц"). Тастер за сортирање1: = Опсег ("Ц2"), _ордер1: = клАсцендинг, Хеадер: = клДа

Финд

Финд је такође метода Ранге Објецт. Проналази прву ћелију са садржајем који одговара критеријуму претраживања и враћа ћелију као објекат Ранге. То се враћа Ништа ако нема подударања.

Употреба Наћи следећи метод (или ФиндПревиоус) за проналажење следеће (претходне) појаве.

Следећи код ће променити фонт у „Ариал Блацк“ за све ћелије у опсегу које почињу са „Јохн“:

12345 За сваки ц у опсегу ("А1: А100")Ако ц Као "Јохн*" Тадац.Фонт.Наме = "Ариал Блацк"Крај АкоСледеће ц

Следећи код ће заменити сва појављивања „За тестирање“ на „Прошло“ у наведеном опсегу:

12345678910 Са дометом ("а1: а500")Поставите ц = .Финд ("За тестирање", ЛоокИн: = клВалуес)Ако није ц онда ништафирстаддресс = ц.АдресаУрадитиц.Валуе = "Прошло"Поставите ц = .ФиндНект (ц)Петља док није ц Није ништа И ц. Адреса фирстаддрессКрај АкоЗавршити

Важно је напоменути да морате користити опсег да бисте користили ФиндНект. Такође морате да наведете услов заустављања, у противном ће се петља извршавати заувек. Обично се адреса прве ћелије која се налази складишти у променљивој и петља се зауставља када поново дођете до те ћелије. Морате проверити и случај када ништа није пронађено да заустави петљу.

Адреса домета

Користите Ранге.Аддресс да бисте добили адресу у стилу А1

123 МсгБок Ранге ("А1: Д10"). Адреса'илиДебуг.Принт Ранге ("А1: Д10"). Адреса

Користите клРеференцеСтиле (подразумевано је клА1) да бисте добили адресе у стилу Р1Ц1

123 МсгБок Ранге ("А1: Д10"). Аддресс (РеференцеСтиле: = клР1Ц1)'илиДебуг.Принт Ранге ("А1: Д10"). Аддресс (РеференцеСтиле: = клР1Ц1)

Ово је корисно када се бавите опсезима смештеним у променљивим и желите да обрадите само за одређене адресе.

Домет до низа

Брже је и лакше пребацити опсег у низ, а затим обрадити вредности. Требало би да декларишете низ као Вариант како бисте избегли израчунавање величине потребне за попуњавање опсега у низу. Димензије низа су подешене тако да одговарају броју вредности у опсегу.

123456789 Дим ДирАрраи као варијанта'Чувајте вредности у опсегу у низуДирАрраи = Опсег ("а1: а5"). Вредност'Петља за обраду вредностиЗа сваки ц У ДирАрраи -уДебуг.Принт цСледећи

Низ домета

Након обраде, можете да упишете низ назад у опсег. Да бисте уписивали низ у горњем примеру у опсег, морате навести опсег чија величина одговара броју елемената у низу.

Користите доњи код да бисте уписивали низ у опсег Д1: Д5:

123 Опсег ("Д1: Д5"). Вредност = ДирАрраиОпсег ("Д1: Х1"). Вредност = Примена.Пренос (ДирАрраи)

Имајте на уму да морате транспоновати низ ако га уписујете у ред.

Сум Ранге

12 СумОфРанге = Апплицатион.ВорксхеетФунцтион.Сум (Опсег ("А1: А10"))Дебуг.Принт СумОфРанге

У ВБА коду можете користити многе функције доступне у Екцелу тако што ћете навести Апплицатион.ВоркСхеетФунцтион. испред назива функције као у горњем примеру.

Цоунт Ранге

1234567 'Броји број ћелија са бројевима у опсегуЦоунтОфЦеллс = Апплицатион.ВорксхеетФунцтион.Цоунт (Опсег ("А1: А10"))Дебуг.Принт ЦоунтОфЦеллс'Броји број празних ћелија у опсегуЦоунтОфНонБланкЦеллс = Апплицатион.ВорксхеетФунцтион.ЦоунтА (Распон ("А1: А10"))Дебуг.Принт ЦоунтОфНонБланкЦеллс

Написала: Винамра Цхандра

Ви ће помоћи развој сајта, дељење страницу са пријатељима

wave wave wave wave wave