Креирајте нове радне свеске користећи ВБА у програму Мицрософт Екцел

Anonim

Могу постојати случајеви у којима морате створити нову радну књигу с одређеним бројем листова путем вба кода или макроа. Ево једноставног макроа који вам омогућава да креирате нову радну свеску> отворите и затим сачувате са највише 255 нових радних листова. У овом узорку макроа креираћемо нову радну свеску са 10 радних листова.

Опција Експлицитно

Суб цреате_воркбоок ()
Дим вб Као радна свеска
Сет вб = НевВоркбоок (10)
Енд Суб

Функција НевВоркбоок (всЦоунт Ас Интегер) Као радна свеска
Дим ОригиналВорксхеетЦоунт Ас Лонг
Постави НевВоркбоок = Ништа
Ако всЦоунт 255 Затим изађите из функције
ОригиналВорксхеетЦоунт = Апплицатион.СхеетсИнНевВоркбоок
Апплицатион.СхеетсИнНевВоркбоок = всЦоунт
Сет НевВоркбоок = Воркбоокс.Адд
Апплицатион.СхеетсИнНевВоркбоок = Број оригиналног радног листа
Завршна функција

Објашњење кода:

Прво имамо процедуру која се зове „цреате_воркбоок”. У овом поступку имамо променљиву вб као радну свеску и кроз ову променљиву позивамо функцију НевВоркбоок. Дакле, нова функција се позива и всцоунт је постављен на 10 што је број радних листова у новој радној свесци.

Затим идемо на позвану функцију која је Функција НевВоркбоок (всЦоунт ас Интегер) као радна свеска. Вредност за всЦоунт која је 10 преноси се из поднаписа цреате_воркбоок.

Постави НевВоркбоок = Ништа

Прво је НевВоркбоок постављен на ништа, тако да можемо избрисати сваку другу вредност која му се може доделити у било којим претходним кодовима.

Ако всЦоунт 255 онда изађите из функције

Затим морамо да проверимо да ли је вредност пренета са под -датотеке мања од 1 или већа од 255. Ако је одговор потврдан на било коју од ових провера, изађите из функције.
ОригиналВорксхеетЦоунт = Апплицатион.СхеетсИнНевВоркбоок

На екцел страници са опцијама постоји параметар где је подешен број листова који се укључују у нову радну свеску. Ову вредност прослеђујемо променљивој ОригиналВорксхеетЦоунт.Променљива ће садржавати подразумевани број листова који је већ унапред подешен у екцел опцијама.

Апплицатион.СхеетсИнНевВоркбоок = всЦоунт

Затим додељујемо вредност всЦоунт -а која се преноси са под -параметра параметру у екцел опцијама за број листова који ће бити укључени у нову радну свеску. Тако ће се сада овај параметар променити са старе вредности на 10. Стара вредност може бити 1 или 3 или било који други број који је поставио корисник.

Сет НевВоркбоок = Воркбоокс.Адд

Креирамо нову радну свеску која је додељена НевВоркбоок -у. Ова нова радна свеска је направљена са бројем листова наведеним у всЦоунт. Видећете нову радну свеску са 10 листова под називом Схеет1 то Схеет10. Погледајте слику испод за нову датотеку Боок3 која је створена.

Доња слика приказује број листова који су створени у новој радној свесци.

Такође, број 10 ће се појавити у параметру Апплицатион.СхеетсИнНевВоркбоок у Екцел опцијама као на доњој слици -

Апплицатион.СхеетсИнНевВоркбоок = Број оригиналног радног листа

ТхеАпплицатион.СхеетсИнНевВоркбоок се враћа на оригинални број који је био присутан пре постављања всЦоунт. Дакле, ако је оригинални број био 1 или 3, овај параметар ће се сада вратити на тај број.

Ако вам се допадају наши блогови, поделите их са пријатељима на Фацебооку. Такође нас можете пратити на Твиттер -у и Фацебоок -у.
Волели бисмо да чујемо од вас, реците нам како можемо побољшати, допунити или иновирати наш рад и учинити га бољим за вас. Пишите нам на сајт е -поште