הצהרת סט VBA | כיצד להקצות ערכים למשתני אובייקט?

הצהרת סט VBA של Excel

ערכת VBA היא משפט שמשמש להקצאת כל מפתח ערך שאומר אובייקט או הפניה למשתנה, אנו משתמשים בפונקציה זו כדי להגדיר את הפרמטר עבור משתנה מסוים, למשל, אם אנו כותבים Set M = A שמשמעותו עכשיו M להפניה יש אותם ערכים ותכונות הדומים למה שיש ל- A.

ב- VBA, אובייקט הוא ליבה של האקסל מכיוון שללא אובייקטים אנחנו לא יכולים לעשות כלום. האובייקטים הם חוברת עבודה, גליון עבודה וטווח. כאשר אנו מכריזים על משתנה עלינו להקצות לו סוג נתונים ונוכל להקצות אובייקטים כסוגי נתונים. כדי להקצות ערך למשתני אובייקט מוצהרים עלינו להשתמש במילה "SET". המילה "Set" נהגה להתייחס לאובייקט חדש ב- VBA, למשל, להתייחס לטווח המסוים של גליון העבודה המסוים.

כיצד להשתמש בהצהרת סט VBA של Excel?

אתה יכול להוריד תבנית הצהרת סט VBA זו כאן - תבנית הצהרת סט VBA

מס '1 - הגדר הצהרה עם משתני אובייקט טווח

לדוגמא נניח שאתה רוצה להשתמש בטווח A1 עד D5 לעיתים קרובות למדי. במקום לכתוב את הקוד כטווח ("A1: D5") בכל פעם שנוכל להכריז על המשתנה כטווח ולהגדיר את הפניה לטווח כטווח ("A1: D5")

שלב 1: הכריז על המשתנה כאובייקט טווח.

קוד:

 תת סט_דוגמה ()

עמעום MyRange כטווח

סיום משנה

שלב 2: ברגע שאנחנו מקצים את סוג הנתונים לטווח השתמש במילה "הגדר".

קוד:

 Sub Set_Example () עמעום MyRange כטווח הגדר MyRange = Sub Sub 

שלב 3: כעת הזכר את הטווח.

קוד:

 Set Set_Example () עמעום MyRange כטווח הגדר MyRange = Range ("A1: D5") סוף Sub 

שלב 4: כעת המשתנה "MyRange" שווה לטווח A1 עד D5. באמצעות משתנה זה אנו יכולים לגשת לכל המאפיינים והשיטות בטווח זה.

אנחנו יכולים להעתיק, להוסיף הערה ב- Excel ולעשות דברים רבים אחרים.

לדוגמא מטרה, יצרתי כאן מספרים.

כעת באמצעות המשתנה אשנה את גודל הגופן ל 12.

קוד:

 Sub Set_Example () עמעום MyRange כטווח הגדר MyRange = Range ("A1: D5") MyRange.Font.Size = 12 Sub End 

זה ישנה את גודל הגופן של הטווח שהוקצה.

כמו זה, אנו יכולים לעשות דברים רבים עם טווח מסוים באמצעות המילה "Set".

מס '2 - קבע הצהרה עם משתני אובייקט בגליון העבודה

ראינו כיצד "סט" עובד עם אובייקט טווח ב- VBA. זה עובד בדיוק כמו גם אובייקט גליון העבודה.

נניח שיש לך 5 דפי עבודה בחוברת העבודה שלך ואתה רוצה לחזור לגליון העבודה המסוים, אתה יכול להגדיר את שם גליון העבודה למשתנה האובייקט שהוגדר.

לדוגמה, עיין בקוד שלמטה.

קוד:

 תת סט_גיליון עבודה_דוגמה () עמעום Ws כגיליון עבודה סט Ws = גליונות עבודה ("גיליון סיכום") סוף סוף 

בקוד לעיל, המשתנה "Ws" מוגדר כמשתנה אובייקט, ובשורה הבאה באמצעות המילה "Set" הגדרנו את המשתנה לגליון העבודה בשם "גיליון סיכום".

כעת באמצעות המשתנה הזה אנו יכולים לעשות את כל הדברים הקשורים אליו. התבונן בשתי קבוצות הקוד שלמטה.

# 1 - ללא מילה "קבע"

קוד:

 תת Set_Worksheet_Example1 () 'לבחירת גליונות העבודה של הגיליון ("גיליון סיכום"). בחר' להפעלת גליונות העבודה של הגיליון ("גיליון סיכום"). הפעל 'כדי להסתיר את גליונות העבודה של הגיליון ("גיליון סיכום"). גלוי = xlVeryHidden' אל בטל את הסדין של גליון העבודה ("גיליון סיכום"). גלוי = xlVisible End Sub 

בכל פעם שהשתמשתי באובייקט גליונות העבודה כדי להתייחס לגיליון "גיליון סיכום". זה הופך את הקוד לכל כך ארוך ודורש הרבה זמן להקליד.

As part of the huge code, it is frustrating to type the worksheet name like this every time you need to reference the worksheet.

Now take a look at the advantage of using the word Set in Code.

#2 – With “Set” Word

Code:

 Sub Set_Worksheet_Example() Dim Ws As Worksheet Set Ws = Worksheets("Summary Sheet") 'To select the sheet Ws.Select 'To Activate the sheet Ws.Activate 'To hide the sheet Ws.Visible = xlVeryHidden 'To unhide the sheet Ws.Visible = xlVisible End Sub 

The moment we set the worksheet name we can see the variable name while entering the code as part of the list.

#3 – Set Statement with Workbook Object Variables

The real advantage of the word “Set” in VBA arises when we need to reference different workbooks.

When we work with different workbooks it is so hard to type in the full name of the workbook along with its file extension.

Assume you have two different workbooks named “Sales Summary File 2018.xlsx” and “Sales Summary File 2019.xlsx” we can set the two workbooks like the below code.

Code:

 Sub Set_Workbook_Example1() Dim Wb1 As Workbook Dim Wb2 As Workbook Set Wb1 = Workbooks("Sales Summary File 2018.xlsx") Set Wb2 = Workbooks("Sales Summary File 2019.xlsx") End Sub 

Now variable Wb1 is equal to the workbook named “Sales Summary File 2018.xlsx” and variable Wb2 is equal to the workbook named “Sales Summary File 2019.xlsx”.

Using this variable we can actually access all the properties and methods associated with the workbook.

We can shorten the code like the below.

Without Using Set Keyword to activate the workbook:

Workbooks("Sales Summary File 2018.xlsx").Activate

Using the Set Keyword to activate the workbook:

Wb1.Activate

This makes the writing of the code lot simpler and also once the workbook name is set there is a worry of typo error of the workbook names.