VBA Named Range | จะสร้างและใช้ช่วงที่ตั้งชื่อได้อย่างไร?

ช่วงที่ตั้งชื่อของ Excel VBA

เมื่อเราทำงานกับข้อมูลจำนวนมากเพื่อหลีกเลี่ยงการอ้างถึงเซลล์หรือช่วงเซลล์ใดเซลล์หนึ่งเรามักจะสร้างช่วงที่ตั้งชื่อและช่วยให้เราสามารถอ้างถึงช่วงเซลล์ที่ต้องการผ่านช่วงที่ตั้งชื่อ ใน VBA เพื่อสร้างช่วงชื่อเรามีฟังก์ชันเพิ่มชื่อ

เราสามารถเลือกเซลล์หรือช่วงของเซลล์และตั้งชื่อให้ได้ หลังจากตั้งชื่อเซลล์แล้วเราสามารถอ้างถึงเซลล์เหล่านั้นได้โดยการป้อนชื่อที่กำหนดเหล่านั้นแทนการอ้างอิงแถวหรือคอลัมน์ตามปกติ

คุณสามารถดาวน์โหลดเทมเพลต Excel VBA Named Range ได้ที่นี่ - เทมเพลต Excel ช่วงชื่อ VBA

จะสร้างช่วงที่ตั้งชื่อได้อย่างไร?

เป็นการเดินเล่นในสวนสาธารณะเพื่อสร้างช่วงที่มีชื่อ สิ่งแรกที่เราต้องทำคือระบุเซลล์ที่เราต้องการสร้างช่วงชื่อใน excel

สำหรับตัวอย่างดูภาพด้านล่าง

เพื่อให้ได้กำไรในเซลล์ B4 ฉันได้ใช้สูตร B2 - B3

นี่เป็นเรื่องธรรมดาที่ทุกคนทำ แต่วิธีการสร้างชื่อและใช้สูตรเช่น "การขาย" - "ต้นทุน"

วางเคอร์เซอร์บนเซลล์ B2> ไปที่กล่องชื่อและเรียกมันว่า Sales

วางเคอร์เซอร์ไว้ที่เซลล์ B3 และเรียกมันว่า Cost

ตอนนี้ในคอลัมน์กำไรเราสามารถอ้างอิงชื่อเหล่านี้แทนการอ้างอิงเซลล์

นี่เป็นสิ่งพื้นฐานเกี่ยวกับ Named Ranges

จะสร้างช่วงที่ตั้งชื่อโดยใช้รหัส VBA ได้อย่างไร

ตัวอย่าง # 1

คุณเคยคิดที่จะสร้างช่วงที่ตั้งชื่อโดยใช้รหัส VBA หรือไม่?

ทำตามขั้นตอนด้านล่างเพื่อสร้างช่วงที่ตั้งชื่อ

ขั้นตอนที่ 1:กำหนดตัวแปรเป็น“ ช่วง”

รหัส:

 Sub NamedRanges_Example () Dim Rng เป็น Range End Sub 

ขั้นตอนที่ 2:ตั้งค่าตัวแปร“ Rng” ให้กับเซลล์เฉพาะที่คุณต้องการตั้งชื่อ

รหัส:

 Sub NamedRanges_Example () Dim Rng As Range Set Rng = Range ("A2: A7") End Sub 

ขั้นตอนที่ 3:การใช้ "ThisWorkbook" object access Names Property

เรามีพารามิเตอร์มากมายพร้อมชื่อเพิ่มวิธีการ ด้านล่างนี้คือคำอธิบาย

[ชื่อ]:ชื่อคืออะไร แต่เป็นชื่อที่เราต้องการให้กับช่วงที่เราระบุ

ในขณะที่ตั้งชื่อเซลล์ไม่ควรมีอักขระพิเศษใด ๆ ยกเว้นสัญลักษณ์ขีดล่าง (_) และไม่ควรมีอักขระเว้นวรรคเช่นกันจึงไม่ควรขึ้นต้นด้วยค่าตัวเลข

[อ้างถึง]:นี่ไม่ใช่อะไรนอกจากช่วงของเซลล์ที่เราอ้างถึง

ฉันคิดว่าพารามิเตอร์ทั้งสองนี้ดีพอที่จะเริ่มต้นกระบวนการ

ขั้นตอนที่ 4:ในชื่ออาร์กิวเมนต์ป้อนชื่อที่คุณต้องการตั้งให้ ฉันตั้งชื่อเป็น“ SalesNumbers”

รหัส:

 Sub NamedRanges_Example () Dim Rng As Range Set Rng = Range ("A2: A7") ThisWorkbook.Names.Add Name: = "SalesNumbers" End Sub 

ขั้นตอนที่ 5:ในการอ้างถึงอาร์กิวเมนต์ให้ป้อนช่วงของเซลล์ที่เราต้องการสร้าง ในชื่อของตัวแปร“ Rng” เราได้กำหนดช่วงของเซลล์เป็น A2 ถึง A7 แล้วดังนั้นให้ระบุอาร์กิวเมนต์เป็น“ Rng”

รหัส:

 Sub NamedRanges_Example () Dim Rng As Range Set Rng = Range ("A2: A7") ThisWorkbook.Names.Add Name: = "SalesNumbers", RefersTo: = Rng End Sub 

ตกลงรหัสนี้จะสร้างช่วงที่ตั้งชื่อสำหรับเซลล์จาก A2 ถึง A7

ตอนนี้ในแผ่นงานฉันได้สร้างตัวเลขจาก A2 ถึง A7 แล้ว

In the A8 cell, I want to have the total of the above cell numbers. Using named range, we will create a SUM of these numbers.

Code:

 Sub NamedRanges_Example() Dim Rng As Range Set Rng = Range("A2:A7") ThisWorkbook.Names.Add Name:="SalesNumbers", RefersTo:=Rng Range("A8").Value = WorksheetFunction.Sum(Range("SalesNumbers")) End Sub 

If you run this code manually or by pressing f5 key then, we will get the total of a named range in cell A8.

This is the basic must-know facts about “Named Ranges”.

Example #2

In VBA using RANGE object, we can refer to the cells. Similarly, we can also refer to those cells by using named ranges as well.

For example, in the above example, we have named the cell B2 as “Sales” and B3 as “Cost”.

By using actual cell reference we refer to those cells like this.

Code:

 Sub NamedRanges() Range("B2").Select 'This will select the B2 cell Range("B3").Select 'This will select the B3 cell End Sub 

Since we already created these cells we can refer to using those names like the below.

Code:

 Sub NamedRanges() Range("Sales").Select 'This will select cell named as "Sales" i.e. B2 cell Range("Cost").Select 'This will select cell named as "Cost" i.e. B3 cell End Sub 

Like this using Named Ranges, we can make use of those cells. Using these named we can calculate the profit amount in cell B4. For this first name the cell B4 as Profit.

Now in the VBA editor apply this code.

Code:

 Sub NamedRanges_Example1() Range("Profit").Value = Range("Sales") - Range("Cost") End Sub 

This will calculate the profit amount in the cell named “Profit”.