แผ่นงานเปลี่ยนชื่อ VBA | วิธีเปลี่ยนชื่อแผ่นงาน Excel โดยใช้รหัส VBA

การเปลี่ยนชื่อแผ่นงานใน excel ทำได้จากแถบงานด้านล่างแผ่นงานที่มีอยู่โดยการดับเบิลคลิกที่แผ่นงาน แต่ใน VBA เราใช้วิธีคุณสมบัติของแผ่นงานหรือแผ่นงานเพื่อเปลี่ยนชื่อแผ่นงานไวยากรณ์ในการเปลี่ยนชื่อแผ่นงานใน VBA จะเป็นดังนี้แผ่นงาน (“ Old Sheet Name”). Name =“ New Sheet name”.

เปลี่ยนชื่อแผ่นงานใน Excel VBA

เราทุกคนได้ทำภารกิจนี้ในการเปลี่ยนชื่อแผ่นงานตามตัวตนของเราหรือตามความสะดวกของเราใช่หรือไม่? การเปลี่ยนชื่อไม่ใช่วิทยาศาสตร์จรวดที่จะเชี่ยวชาญ แต่ถ้าคุณเป็นผู้เข้ารหัส VBA คุณต้องรู้ว่างานนี้เปลี่ยนชื่อแผ่นงาน เนื่องจากเราทำงานกับเวิร์กชีตโดยใช้ชื่อของมันจึงเป็นสิ่งสำคัญที่ต้องทราบถึงความสำคัญของชื่อเวิร์กชีตในการเข้ารหัส VBA ในบทความนี้เราจะแสดงวิธีเปลี่ยนชื่อแผ่นงานโดยใช้การเข้ารหัส Excel VBA

วิธีเปลี่ยนชื่อแผ่นงานใน VBA

การเปลี่ยนชื่อของแผ่นงานไม่จำเป็นต้องมีทักษะพิเศษใด ๆ เราจำเป็นต้องอ้างอิงชื่อแผ่นงานที่เรากำลังเปลี่ยนโดยป้อนชื่อแผ่นงานที่มีอยู่

ตัวอย่างเช่นหากเราต้องการเปลี่ยนชื่อแผ่นงานที่มีชื่อว่า "Sheet 1" เราจำเป็นต้องเรียกแผ่นงานตามชื่อโดยใช้วัตถุในแผ่นงาน

แผ่นงาน (“ Sheet1”)

หลังจากเอ่ยชื่อแผ่นงานแล้วเราต้องเลือกคุณสมบัติ“ Name” เพื่อเปลี่ยนชื่อแผ่นงาน

แผ่นงาน (“ Sheet1”). ชื่อ

ตอนนี้เราต้องตั้งค่าคุณสมบัติ Name เป็นชื่อตามความต้องการของเรา

แผ่นงาน (“ Sheet1”). Name =“ New Name”

เช่นนี้เราสามารถเปลี่ยนชื่อแผ่นงานใน VBA โดยใช้คุณสมบัติชื่อ

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

ตัวอย่างการเปลี่ยนชื่อแผ่นงานใน Excel VBA

ด้านล่างนี้คือตัวอย่างของ VBA Rename Sheet

คุณสามารถดาวน์โหลด VBA Rename Sheet Template ได้ที่นี่ - VBA Rename Sheet Template

ตัวอย่าง # 1 - เปลี่ยนหรือเปลี่ยนชื่อแผ่นงานโดยใช้ตัวแปร VBA

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

รหัส:

 Sub Rename_Example1 () Dim Ws As Worksheet Set Ws = Worksheets ("Sheet1") Ws.Name = "New Sheet" End Sub 

ในโค้ดด้านบนก่อนอื่นฉันได้ประกาศตัวแปรเป็นแผ่นงาน

 Dim Ws เป็นแผ่นงาน

ต่อไปฉันได้ตั้งค่าการอ้างอิงถึงตัวแปรเป็น "Sheet1" โดยใช้วัตถุแผ่นงาน

 ตั้งค่า Ws = แผ่นงาน ("Sheet1")

ตอนนี้ตัวแปร“ Ws” เก็บข้อมูลอ้างอิงของแผ่นงาน“ Sheet1”

ตอนนี้ใช้ตัวแปร“ Ws” ฉันได้เปลี่ยนชื่อแผ่นงานเป็น“ แผ่นงานใหม่”

รหัสนี้จะเปลี่ยนชื่อ "Sheet1" เป็น "แผ่นงานใหม่"

หากฉันเรียกใช้รหัสด้วยตนเองหรือผ่านปุ่มทางลัด F5 เราจะได้รับข้อผิดพลาด Subscript Out of Range อีกครั้ง

สาเหตุที่เราได้รับข้อผิดพลาดนี้เนื่องจากในขั้นตอนก่อนหน้านี้เราได้เปลี่ยนแผ่นงานชื่อ“ Sheet1” เป็น“ แผ่นงานใหม่” ไปแล้ว เนื่องจากไม่มีชื่อแผ่นงาน "Sheet1" อีกต่อไปจึงไม่มี VBA จึงทำให้เกิดข้อผิดพลาดนี้

ตัวอย่าง # 2 - รับชื่อแผ่นงานทั้งหมดในแผ่นงานเดียว

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

รหัส:

 Sub Renmae_Example2 () Dim Ws As Worksheet Dim LR as Long สำหรับ Ws แต่ละรายการใน ActiveWorkbook.Worksheets LR = Worksheets ("Main Sheet") Cells (Rows.Count, 1). End (xlUp) .Row + 1 Cells (LR, 1) เลือก ActiveCell.Value = Ws.Name Next Ws End Sub 

โค้ดนี้จะดึงชื่อเวิร์กชีตที่มีอยู่ทั้งหมดไปยังชีตที่ชื่อว่า“ Main Sheet”

ตัวอย่าง # 3 - ตั้งชื่อถาวรเป็นแผ่นงาน Excel โดยใช้ VBA

เนื่องจากเราทำงานกับชื่อแผ่นงานในการเขียนโค้ดจึงเป็นเรื่องสำคัญที่จะต้องตั้งชื่อถาวรให้ เราจะตั้งชื่อถาวรให้พวกเขาได้อย่างไร?

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

รหัส:

 Sub Rename_Example3 () Worksheets ("Sheet1") เลือก End Sub 

โค้ดด้านบนจะเลือก Sheet1

ถ้าคนจำนวนมากใช้สมุดงานของคุณถ้ามีคนเปลี่ยนชื่อแผ่นงานเราจะได้รับข้อผิดพลาด Subscript Out of Range

เพื่อหลีกเลี่ยงปัญหานี้เราสามารถตั้งชื่อถาวรเป็นชื่อนี้ได้ ในการตั้งชื่อถาวรให้ทำตามขั้นตอนด้านล่าง

ขั้นตอนที่ 1:เลือกแผ่นงานที่เราต้องการตั้งชื่อถาวรใน Visual Basic Editor

ขั้นตอนที่ 2:กดปุ่ม F4 เพื่อดูหน้าต่างคุณสมบัติ

ขั้นตอนที่ 3:ภายใต้ชื่อคุณสมบัติเปลี่ยนชื่อเป็น "ชื่อใหม่"

As you can see one name is showing as “Sheet1” and in a bracket, we can see the new name as “New Sheet”.

Now in coding, we will use the new name instead of an actual visible name.

Code:

 Sub Rename_Example3() NewSheet.Select End Sub 

Now come back to the worksheet window, we can still see the sheet name as “Sheet1” only.

Now I will change the sheet name to “Sales”.

If I run the code using the F5 key or manually then it will still select the sheet named “Sales” only. Since we had given a permanent name to it, still it will select the same sheet only.