VBA работни листове - Как да използвам обект на работен лист във VBA?

Работни листове на Excel VBA

Excel е работна книга и в нея тя съдържа работни листове или листове. Много е важно да разберем концепцията за работни листове във VBA, защото през цялото време работим с работни листове. В нормалния файл на Excel ние го наричаме като листове, но в терминологията на VBA той се нарича „Работен лист“. Всички колекции от работен лист се наричат ​​„Работни листове“.

Във VBA работният лист е обект. Има два начина за препращане към работния лист, като един се използва обект „Работен лист“, а друг - чрез обект „Листове“.

Знам, че въпросът ви е каква е разликата между тях. В Excel можем да видим два вида листове, единият е обикновени работни листове, а другият е лист с диаграми.

Разделът на работния лист в Excel разглежда само работните листове в работната книга, с изключение на листове на диаграми. “Sheets” разглежда всички работни листове в работната книга, включително листа с диаграми. Например погледнете изображението по-долу.

В горното имаме общо 5 листа. От тези 5 листа 3 са работни листове, а 2 са листове с диаграми.

Тук броят на „Работен лист“ е 3, а броят на „Листове“ е 2.

Сега погледнете изображението по-долу.

Тук всички листове са работни листове, така че броят на „Работен лист“ и „Листове“ е 3.

Така че, като част от кода, ако искате да използвате работни листове, обектите запомнят тази точка.

Синтаксис на VBA работни листове

Както казах, работният лист е обектна променлива. Това обаче има и синтаксис.

Индексът не е нищо, което е номерът на работния лист, за който говорим. Както можете да видите в крайна сметка, той е посочен като Обект.

Например Работен лист (1). Изберете означава да изберете първия работен лист от работната книга. Няма значение как е името на работния лист; независимо от работния лист, вмъкнат първо в работната книга, ще бъде избран.

Също така можем да се позовем на работния лист и под неговото име. Трябва да споменем пълното, тъй като това е име на работен лист в двойни кавички.

Например Работен лист („Лист за продажби“). Изберете означава да изберете листа, наречен „Лист за продажби“. Тук няма значение какъв е броят на работния лист, той винаги избира посочения работен лист.

Как да използвам обект на работни листове във VBA?

Пример # 1

Например, приемете, че имате общо 5 листа във вашата работна книга и името на тези работни листове е „Работен лист 1“, „Работен лист 2“, „Работен лист 3“, „Графичен лист 1“ и „Графичен лист 2“.

Ако използвам номерирането, за да избера работния лист, тогава мога да използвам номера като справка за работния лист.

Работен лист (2). Избор означава, че ще избере втория работен лист от работната книга.

Код:

Sub Worksheet_Example1 () Worksheets (2). Изберете End Sub

Ще пусна този код с помощта на клавиша F5 или ръчно и ще видя резултата.

Сега ще сменя номера на листа на 3.

Код:

Sub Worksheet_Example1 () Worksheets (3). Изберете End Sub

Сега вижте какво се случва, когато стартирате кода ръчно или използвате кода на клавиша F5.

Ако погледнете горното изображение, то беше избрало 4 -ия работен лист, когато поисках да избера 3 - ия работен лист.

Това е така, защото съм използвал обекта Worksheet, а не Sheets. Както казах по-рано, обектът „Работни листове“ разглежда само работни листове, а не листове на диаграми.

За да изберете третия лист от всички листове в работната книга, използвайте обект Sheets.

Код:

Подработен лист_Пример1 ()

Листове (3). Изберете

Крайна под

Сега ще избере точно третия лист.

Пример # 2 - Изберете работни листове по име

Избирането на листове по име, името им е точният начин за препращане към листа. Например, ако искаме да изберем листа „Работен лист 3“, тогава можете да използвате кода по-долу.

Код:

Sub Worksheet_Example2 () Worksheets ("Worksheet 3"). Изберете End Sub

Това ще избере точния лист; няма значение къде е поставен в работната книга.

Но ако сте се опитали да отворите листа с диаграмата с обекта „Работни листове“, ще получим „Грешка в индекса извън обхвата“

Код:

Sub Worksheet_Example2 () Worksheets ("Chart Sheet 1"). Изберете End Sub

Изпълнете този код чрез клавиша F5 или ръчно и вижте резултата.

Пример # 3 - Проблем с името на работния лист

Има още един проблем с препращането на листовете към неговото име. Ако някой промени името на работния лист, тогава отново ще получим „Грешка в индекса извън обхвата“.

За да разрешите този проблем, отворете редактора на visual basic, като натиснете клавиша ALT + F11 .

Сега изберете името на листа и натиснете клавиша F4, за да видите прозореца със свойства.

В тези свойства прозорецът променя името на работния лист на вашето име.

Тук е едно интересно нещо, въпреки че сме сменили името на работния лист от „Работен лист 1“ на „WS1“, все още можем да видим същото име в работната книга.

Сега можем да препращаме този лист с име „WS1“.

Код:

Sub Worksheet_Example2 () Worksheets ("WS1"). Изберете End Sub

Сега няма значение кой ще промени името на работния лист. И все пак, нашият код се отнася до същия лист, стига да не променя редактора на visual basic.

Пример # 4 - Вземете броя на общите листове в работната книга

Работният лист е обект и ние можем да използваме всички свойства и методи, свързани с него. Какво правим с работни листове?

Вмъкваме работни листове. Преименуваме работни листове. Изтриваме работни листове и много други неща, които правим с него.

Въведете обекта „Работни листове“ и поставете точка, за да видите всички опции с тях.

За да получите броя на работните листове, използва свойството Count VBA.

Код:

Sub Worksheet_Example3 () Dim i As Long i = Worksheets.Count MsgBox i End Sub

Това ще покаже броя на работните листове.

Въпреки че има 5 листа, сме получили броя като 3, защото другите 2 листа са листове на диаграми.

За да получите общия брой листове, използва обекта “Sheets”.

Код:

Sub Worksheet_Example3 () Dim i As Long i = Sheets.Count MsgBox i End Sub

Това ще покаже пълния брой на листовете.

Пример # 5 - Методи, използващи обект на работен лист

След въвеждане на обекта на работния лист можем да осъществим достъп до всички свойства и обекти, свързани с него. Можем да добавим нов лист. Можем да изтрием и т.н.

За да добавите нов лист.

Работен лист. Добавете

За да изтриете работен лист

Работен лист („Име на лист“). Изтриване

За да промените името на работния лист

Работен лист („Име на лист“). Име = „Ново име“

Интересни статии...