Овај водич ће вас научити како да креирате ћелијске формуле користећи ВБА.
Формуле у ВБА
Користећи ВБА, можете писати формуле директно у опсеге или ћелије у Екцелу. Изгледа овако:
123456789 | Под Формула_Пример ()'Доделите тешко кодирану формулу једној ћелијиОпсег ("б3"). Формула = "= б1+б2"'Доделите флексибилну формулу низу ћелијаОпсег ("д1: д100"). Формула Р1Ц1 = "= РЦ2+РЦ3"Енд Суб |
Постоје две карактеристике опсега које морате знати:
- .Формула - Креира тачну формулу (напомене кодираних ћелија). Добро за додавање формуле у једну ћелију.
- .ФормулаР1Ц1 - Креира флексибилну формулу. Добро за додавање формула у низ ћелија у којима би референце ћелија требало да се промене.
За једноставне формуле, добро је користити својство .Формула. Међутим, за све остало препоручујемо употребу Макро снимач…
Макро снимач и ћелијске формуле
Макро снимач је наш алат за писање ћелијских формула са ВБА. Можете једноставно:
- Почели са снимањем
- Унесите формулу (са релативним / апсолутним референцама по потреби) у ћелију и притисните ентер
- Заустави снимање
- Отворите ВБА и прегледајте формулу, прилагодите се према потреби и копирајте+залепите код где је потребно.
Сматрам да је лакше да бисте унели формулу у ћелију него да откуцате одговарајућу формулу у ВБА.
Обратите пажњу на неколико ствари:
- Макро снимач ће увек користити својство .ФормулаР1Ц1
- Макро рекордер препознаје апсолутне и релативне ћелијске референце
ВБА ФормулаР1Ц1 Својство
Својство ФормулаР1Ц1 користи референцирање ћелија у стилу Р1Ц1 (за разлику од стандардног стила А1 који сте навикли да видите у Екцелу).
Ево неколико примера:
12345678910111213141516171819 | Под формула Р1Ц1_Екамплес ()'Референца Д5 (апсолутно)'= $ Д $ 5Опсег ("а1"). Формула Р1Ц1 = "= Р5Ц4"'Референца Д5 (Релативно) из ћелије А1'= Д5Опсег ("а1"). ФормулаР1Ц1 = "= Р [4] Ц [3]"'Референца Д5 (апсолутни ред, релативна колона) из ћелије А1'= Д $ 5Опсег ("а1"). ФормулаР1Ц1 = "= Р5Ц [3]"'Референца Д5 (релативни ред, апсолутна колона) из ћелије А1'= Д5 УСДОпсег ("а1"). Формула Р1Ц1 = "= Р [4] Ц4"Енд Суб |
Имајте на уму да референцирање ћелија у стилу Р1Ц1 омогућава постављање апсолутних или релативних референци.
Абсолуте Референце
У стандардном запису А1 апсолутна референца изгледа овако: „= $ Ц $ 2“. У запису Р1Ц1 то изгледа овако: “= Р2Ц3”.
Да бисте креирали апсолутну референцу ћелије користећи тип у стилу Р1Ц1:
- Р + Број реда
- Ц + Број колоне
Пример: Р2Ц3 би представљао ћелију $ Ц $ 2 (Ц је трећа колона).
123 | 'Референца Д5 (апсолутно)'= $ Д $ 5Опсег ("а1"). Формула Р1Ц1 = "= Р5Ц4" |
Релативне референце
Релативне референце ћелија су референце ћелија које се „померају“ када се формула помера.
У стандардном запису А1 изгледају овако: “= Ц2”. У запису Р1Ц1, користите заграде [] да бисте померили референцу ћелије од тренутне ћелије.
Пример: Уношење формуле „= Р [1] Ц [1]” у ћелију Б3 упућивало би на ћелију Д4 (ћелија 1 ред испод и 1 колона десно од ћелије формуле).
Користите негативне бројеве за референцирање ћелија изнад или лево од тренутне ћелије.
123 | 'Референца Д5 (Релативно) из ћелије А1'= Д5Опсег ("а1"). ФормулаР1Ц1 = "= Р [4] Ц [3]" |
Мешовите референце
Референце ћелија могу бити делимично релативне, а делимично апсолутне. Пример:
123 | 'Референца Д5 (релативни ред, апсолутна колона) из ћелије А1'= Д5 УСДОпсег ("а1"). Формула Р1Ц1 = "= Р [4] Ц4" |
ВБА својство формуле
Приликом постављања формула са.Својство формуле увек ћете користити запис у стилу А1. Формулу уносите исто као што бисте унели у Екцел ћелију, осим окружени наводницима:
12 | 'Доделите тешко кодирану формулу једној ћелијиОпсег ("б3"). Формула = "= б1+б2" |
Савети за формулу ВБА
Формула са променљивом
Када радите са формулама у ВБА, врло је уобичајено да желите да користите променљиве унутар формула ћелија. Да бисте користили променљиве, користите & да комбинујете променљиве са остатком низа формуле. Пример:
1234567 | Под Формула_Вариабле ()Дим цолНум Ас ЛонгцолНум = 4Опсег ("а1"). ФормулаР1Ц1 = "= Р1Ц" & цолНум & "+Р2Ц" & цолНумЕнд Суб |
Цитати формуле
Ако треба да додате цитат („) унутар формуле, унесите цитат два пута („ ”):
123 | Подмакро2 ()Опсег ("Б3"). ФормулаР1Ц1 = "= ТЕКСТ (РЦ [-1]," "мм/дд/гггг" ")"Енд Суб |
Један цитат („) означава ВБА крај низа текста. Док се двоструки навод (“”) третира као цитат унутар низа текста.
Слично, користите 3 наводника (“” ”) да окружите низ наводником (“)
12 | МсгБок "" "Користите 3 да окружите низ наводницима" ""'Ово ће одштампати тренутни прозор |
Додели ћелијску формулу променљивој стринга
Формулу можемо прочитати у датој ћелији или опсегу и доделити је променљивој стрингу:
123 | 'Доделите ћелијску формулу променљивојДим стрФормула као СтрингстрФормула = Распон ("Б1"). Формула |
Различити начини додавања формула у ћелију
Ево још неколико примера како доделити формулу ћелији:
- Директно доделите формулу
- Дефинишите променљиву низа која садржи формулу
- Користите променљиве за креирање формуле
12345678910111213141516171819202122232425 | Суб МореФормулаЕкамплес ()„Алтернативни начини за додавање формуле СУМ'у ћелију Б1'Дим стрФормула као СтрингДим целл ас Рангедим фромРов као распон, доРов као распонПостави ћелију = опсег ("Б1")'Директно додељивање низацелл.Формула = "= СУМ (А1: А10)"'Чување низа у променљивој'и додељивање својству "Формуле"стрФормула = "= СУМ (А1: А10)"целл.Формула = стрФормула'Коришћење променљивих за изградњу низа'и додељивање својству "Формула"фромРов = 1тоРов = 10стрФормула = "= СУМ (А" & фромВалуе & ": А" & тоВалуе & ")целл.Формула = стрФормулаЕнд Суб |
Освежите формуле
Подсећања ради, за освежавање формула можете користити команду Израчунај:
1 | Израчунај |
Да бисте освежили једну формулу, опсег или цео радни лист, користите. Израчунајте уместо тога:
1 | Таблице ("Лист1"). Распон ("а1: а10"). Израчунај |