Ово је крајњи водич за рад са листовима / радним листовима у Екцелу.
На дну овог водича створили смо листу уобичајених команди за рад са листовима.
Схеетс Вс. Радни листови
Постоје два начина позивања на Табеле помоћу ВБА. Први је са објектом Схеетс:
1 | Табеле („Лист1“). Активирајте |
Други је са објектом Ворксхеетс:
1 | Радни листови („Лист1“). Активирајте |
99% времена ова два објекта су идентична. У ствари, ако сте на Интернету тражили примере ВБА кода, вероватно сте видели да се користе оба објекта. Ево разлике:
Збирка листова садржи радне листове и листове графикона.
Зато користите Табеле ако желите да укључите редовне радне листове И листове графикона. Користите радне листове ако желите да искључите листове графикона. За остатак овог водича користићемо табеле и радне листове наизменично.
Референцирање листова
Постоји неколико различитих начина позивања на листове:
- АцтивеСхеет
- Назив картице Схеет
- Број индекса листа
- Кодни назив листа
АцтивеСхеет
АцтивеСхеет је лист који је тренутно активан. Другим речима, ако сте паузирали код и погледали Екцел, видљив је лист. Пример кода у наставку ће приказати оквир за поруке са именом АцтивеСхеет.
1 | МсгБок АцтивеСхеет.Наме |
Назив листа
Вероватно сте највише упознати са позивањем на Табеле према називу картице:
1 | Табеле („ТабНаме“). Активирајте |
Број индекса листа
Број индекса листова позиција је листа у радној свесци. 1 је први лист. 2 је други лист итд .:
1 | Листови (1) .Активирајте |
Број индекса листа - последњи лист у радној свесци
Да бисте се позвали на последњи лист у радној свесци, користите Схеетс.Цоунт да бисте добили последњи број индекса:
1 | Табеле (Схеетс.Цоунт) .Активирајте |
Лист „Назив кода“
Кодни назив листа је назив објекта у ВБА:
1 | ЦодеНаме.Ацтивате |
Референцирање листова у другим радним свескама
Такође је лако упутити листове у друге радне свеске. Да бисте то урадили, морате да користите Објекат радне свеске:
1 | Радне свеске ("ВБА_Екамплес.клсм"). Радни листови ("Лист 1"). Активирајте |
Важно: Радна свеска мора бити отворена да бисте могли да погледате њене табеле.
Активирај у односу на Изабери лист
У другом чланку расправљамо о активирању и избору листова. Кратка верзија је следећа:
Када активирате лист, он постаје АцтивеСхеет. Ово је лист који бисте видели да погледате свој Екцел програм. Одједном се може активирати само један лист.
Активирајте лист
1 | Табеле („Лист1“). Активирајте |
Када изаберете лист, он такође постаје АцтивеСхеет. Међутим, можете одабрати више листова одједном. Када се одабере више листова одједном, „горњи“ лист је АцтивеСхеет. Међутим, можете да мењате АцтивеСхеет унутар изабраних листова.
Изаберите лист
1 | Табеле („Лист 1“). Изаберите |
Изаберите Више листова
Помоћу низа изаберите више листова одједном:
1 | Радни листови (Низ ("Лист 2", "Лист 3")). Изаберите |
Променљива радног листа
Додељивање радног листа променљивој омогућава вам да радни лист наведете по имену променљиве. Ово може уштедети много куцања и учинити ваш код лакшим за читање. Постоје и многи други разлози због којих бисте желели да користите променљиве.
Да бисте прогласили променљиву радног листа:
1 | Дим вс као радни лист |
Доделите радни лист променљивој:
1 | Сет вс = Схеетс ("Схеет1") |
Сада се можете позивати на променљиву радног листа у свом коду:
1 | вс.Ацтивате |
Прелистајте све листове у радној свесци
Променљиве радног листа су неопходне када желите да прођете кроз све радне листове у радној свесци. Најлакши начин да то учините је:
12345 | Затамни као радни листЗа сваки вс у радним листовимаМсгБок вс.намеНект вс |
Овај код ће проћи кроз све радне листове у радној свесци, приказујући сваки назив радног листа у оквиру за поруку. Прелиставање свих листова у радној свесци веома је корисно при закључавању / откључавању или скривању / откривању више радних листова одједном.
Заштита радног листа
Заштита радне свеске
Заштита радне свеске закључава радну свеску од структурних промена попут додавања, брисања, премештања или скривања радних листова.
Можете да укључите заштиту радне свеске помоћу ВБА:
1 | АцтивеВоркбоок.Протецт Пассворд: = "Лозинка" |
или онемогућите заштиту радне свеске:
1 | АцтивеВоркбоок.УнПротецт Пассворд: = "Лозинка" |
Напомена: Такође можете заштитити / уклонити заштиту без лозинке изостављањем аргумента Лозинка:
1 | АцтивеВоркбоок.Протецт |
Заштита радног листа
Заштита на нивоу радног листа спречава промене појединачних радних листова.
Заштитите радни лист
1 | Радни листови („Лист1“). Заштитите „Лозинку“ |
Уклони заштиту радног листа
1 | Радни листови („Лист1“). Уклоните заштиту са „лозинке“ |
Постоје различите опције за заштиту радних листова (дозволите промене у обликовању, дозволите кориснику да убаци редове итд.) Препоручујемо коришћење Макро снимача за снимање жељених поставки.
Овде детаљније расправљамо о заштити радног листа.
Радни лист Видљива својина
Можда већ знате да се радни листови могу сакрити:
Постоје заправо три поставке видљивости радног листа: Видљиво, Скривено и ВериХидден.Скривене листове може открити сваки обичан корисник програма Екцел - десним тастером миша у области картице радног листа (приказано горе). ВериХидден листови могу се открити само помоћу ВБА кода или из ВБА уређивача. Користите следеће примере кода да бисте сакрили / открили радне листове:
Откриј радни лист
1 | Радни листови ("Лист1"). Видљив = клСхеетВисибле |
Сакриј радни лист
1 | Радни листови ("Лист1"). Висибле = клСхеетХидден |
Врло сакриј радни лист
1 | Радни листови („Лист1“). Видљив = клСхеетВериХидден |
Догађаји на радном листу
Догађаји су покретачи који могу изазвати покретање „Процедура догађаја“. На пример, можете изазвати покретање кода сваки пут када се промени било која ћелија на радном листу или када се радни лист активира.
Поступци догађаја на радном листу морају бити смештени у модул радног листа:
Постоје бројни догађаји на радном листу. Да бисте видели комплетну листу, идите на модул радног листа, изаберите „Радни лист“ из првог падајућег менија. Затим одабиром процедуре догађаја из другог падајућег менија да бисте је уметнули у модул.
Радни лист Активирај догађај
Догађаји за активирање радног листа покрећу се сваки пут када се радни лист отвори.
123 | Приватни под -радни лист_Ацтивате ()Распон ("А1"). ИзаберитеЕнд Суб |
Овај код ће изабрати ћелију А1 (ресетовање области приказа у горњи леви део радног листа) сваки пут када се радни лист отвори.
Догађај промене радног листа
Догађаји промене радног листа покрећу се сваки пут када се промени вредност ћелије на радном листу. За више информација прочитајте наш водич о догађајима промене радног листа.
Радни лист Цхеат Схеет
Испод ћете пронаћи таблицу са уобичајеним примерима кода за рад са листовима у ВБА
ВБА радни листови Цхеатсхеет
ВБА радни листови ЦхеатсхеетОпис | Пример кода |
---|---|
Референцирање и активирање листова | |
Назив картице | Табеле („Унос“). Активирајте |
ВБА кодни назив | Лист1.Активирајте |
Индексна позиција | Листови (1) .Активирајте |
Изаберите Лист | |
Изаберите Лист | Табеле („Унос“). Изаберите |
Подесите на Вариабле | Затамни као радни лист Поставите вс = АцтивеСхеет |
Име / Преименуј | АцтивеСхеет.Наме = "Ново име" |
Следећи лист | АцтивеСхеет.Нект.Ацтивате |
Прођите кроз све листове | Затамни као радни лист За сваки вс у радним листовима Мсгбок вс.наме Нект вс |
Прелистајте одабране листове | Дим вс Ас Ворксхеет За сваки вс у АцтивеВиндов.СелецтедСхеетс МсгБок вс.Наме Нект вс |
Набавите АцтивеСхеет | МсгБок АцтивеСхеет.Наме |
Адд Схеет | Схеетс.Адд |
Додајте лист и назив | Схеетс.Адд.Наме = "Нови лист" |
Додајте лист са именом из ћелије | Схеетс.Адд.Наме = ранге ("а3"). Валуе |
Додај лист за другим | Схеетс.Адд Афтер: = Схеетс ("Инпут") |
Додајте лист по и име | Схеетс.Адд (Афтер: = Схеетс ("Инпут")). Наме = "НевСхеет" |
Додајте лист пре и име | Схеетс.Адд (Бефоре: = Схеетс ("Инпут")). Наме = "НевСхеет" |
Додајте лист на крај радне свеске | Схеетс.Адд Афтер: = Схеетс (Схеетс.Цоунт) |
Додајте лист на почетак радне свеске | Схеетс.Адд (Бефоре: = Схеетс (1)). Наме = "ФирстСхеет" |
Додај лист променљивој | Дим вс Ас Ворксхеет Сет вс = Схеетс.Адд |
Копирај радне листове | |
Премести лист на крај радне свеске | Табеле („Лист1“). Премести после: = Табеле (Табеле.Број) |
У нову радну свеску | Табеле („Лист1“). Копирај |
Одабрани листови за нову радну свеску | АцтивеВиндов.СелецтедСхеетс.Цопи |
Пре другог листа | Табеле ("Лист1"). Копирај пре: = Табеле ("Лист2") |
Пре првог листа | Табеле („Лист1“). Копирај пре: = Табеле (1) |
После последњег листа | Табеле („Лист 1“). Копирај после: = Табеле (Табела. Број) |
Копија и име | Табеле („Лист1“). Копирај после: = Табеле (Табеле.Број) АцтивеСхеет.Наме = "Последњи лист" |
Копирај и дај назив из вредности ћелије | Табеле („Лист1“). Копирај после: = Табеле (Табеле.Број) АцтивеСхеет.Наме = Опсег ("А1"). Вредност |
У другу радну свеску | Табеле („Лист1“). Копирај пре: = Радне свеске („Пример.клсм“). Табеле (1) |
Сакриј / Откриј табеле | |
Сакриј лист | Схеетс ("Схеет1"). Висибле = Нетачно или Схеетс ("Схеет1"). Висибле = клСхеетХидден |
Откриј табелу | Табеле („Лист1“). Видљиво = Тачно или Схеетс ("Схеет1"). Видљив = клСхеетВисибле |
Вери Хиде Схеет | Табеле („Лист 1“). Видљиво = клСхеетВериХидден |
Брисање или брисање табела | |
Избриши лист | Табеле („Лист1“). Избришите |
Избриши лист (руковање грешкама) | На Грешка Настави даље Табеле („Лист1“). Избришите Он Еррор ГоТо 0 |
Избриши лист (без упита) | Апплицатион.ДисплаиАлертс = Нетачно Табеле („Лист1“). Избришите Апплицатион.ДисплаиАлертс = Тачно |
Цлеар Схеет | Листови ("Лист1"). Ћелије.Очисти |
Само јасан садржај листа | Схеетс ("Схеет1"). Целлс.ЦлеарЦонтентс |
Цлеар Схеет УседРанге | Схеетс ("Схеет1"). УседРанге.Цлеар |
Заштитите или уклоните заштиту листова | |
Уклони заштиту (без лозинке) | Табеле („Лист1“). Уклоните заштиту |
Уклони заштиту (лозинка) | Табеле („Лист1“). Уклоните заштиту са „лозинке“ |
Заштита (без лозинке) | Табеле („Лист1“). Заштитите |
Заштита (лозинка) | Табеле („Лист 1“). Заштитите „Лозинку“ |
Заштитите, али дозволите приступ ВБА | Табеле („Лист 1“). Заштитите УсерИнтерфацеОнли: = Тачно |
Уклоните заштиту са свих табела | Дим вс Ас Ворксхеет За сваки вс у радним листовима вс.Унпротецт "пассворд" Нект вс |