VBA ThisWorkbook - Как да използвам свойството на тази работна книга в Excel VBA?

Съдържание

Excel VBA ThisWorkbook

VBA ThisWorkbook означава работната книга, в която пишем Excel кода. Например, ако работите в работната книга с име „Продажби 2019.xlsx“, обикновено се позоваваме на работната книга по този начин.

Работни книги („Продажби 2019.xlsx“). Активирайте

Кодът ще активира работната книга с име „Продажби 2019.xlsx“.

Вместо да пишем така, можем просто да напишем кода на VBA по-долу.

ThisWorkbook.Activate '

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

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

Работа с ThisWorkbook в Excel VBA

Референтната дума „ThisWorkbook“ е по-надеждна от квалификатора на обекта Workbooks. Една от човешките тенденции е грешното въвеждане на името на работната книга, което води до изпращане на съобщение за грешка.

Още една важна причина, поради която VBA ThisWorkbook е по-надеждна, защото за всеки случай, ако променим името на работната книга, трябва да променим кода, защото използвахме думата „ThisWorkbook“.

И така, ThisWorkbook е по-безопасно да се използва за позоваване на работната книга, където пишем кода.

Пример # 1

Ще видим някои от примерите, в които можем да използваме думата ThisWorkbook в Excel VBA. Следният код ще отпечата името на работната книга.

Код:

Sub TWB_Example1 () Dim WBName As String WBName = ThisWorkbook.Name MsgBox WBName End Sub

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

Пример # 2

Вместо да използваме думата „Тази работна книга“, можем да използваме променливи, за да зададем препратка към работната книга и дори да намалим драстично дължината на кода във VBA. Например, първо разгледайте кода по-долу.

Код:

Sub TWB_Example2 () ThisWorkbook.Activate ThisWorkbook.Worksheets ("Sheet1"). Активирайте ThisWorkbook.Save ThisWorkbook.Close ThisWorkbook.SaveAs End Sub

Горният код използва “ThisWorkbook” във всеки ред от кода. Колко трудно е да въвеждате думата всеки път. Така че, можем да намалим това с помощта на променливи.

Сега вижте кода по-долу с променливата.

Код:

Sub TWB_Example2 () Dim Wb As Workbook Set Wb = ThisWorkbook Wb.Activate Wb.Worksheets ("Sheet1"). Активирайте Wb.Save Wb.Close Wb.SaveAs End Sub

Изглежда красиво, нали ??

Нека ви обясня кода.

Първо, декларирах променливата като обект на работна книга.

Затъмнете Wb като работна книга

Тъй като това е обектна променлива, трябва да зададем препратката към конкретната работна книга. Затова използвах справочника „ThisWorkbook”.

Задайте Wb = ThisWorkbook

Сега променливата „Wb“ е посочена към работната книга, където в момента пишем кода. Оттук нататък в процедурата не е необходимо вместо това да използваме думата „ThisWorkbook“, можем да използваме променливата „Wb“.

Активна работна книга срещу тази работна книга в Excel VBA

Както казах в началото на статията, много програмисти използват думите Active Workbook & ThisWorkbook много често в кодирането си с VBA. Като читател или нов обучаем не е лесно да разберете тези двама. Така че, нека ви обясня някои от разликите.

Разлика # 1: Значение

  • Активна работна книга: Активната работна книга не е непременно работната книга, в която в момента пишем кода. Ако имате няколко отворени работни книги и която и да е работна книга е видима на вашия екран, се счита за активна работна книга .
  • ThisWorkbook: ThisWorkbook винаги е работната книга, където в момента пишем кода.

Разлика 2: Шансове за грешка

  • Активна работна книга: Използването на Active в кодирането може да доведе до много грешки и объркване, защото никога не знаем коя работна книга е активна, освен ако не споменем специално работната книга да се активира, преди да използваме думата Active Workbook.
  • ThisWorkbook: ThisWorkbook не може да се обърка, защото няма значение коя работна книга е активна. Винаги се позовава на работната книга, където пишем кода.

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