การเปลี่ยนชื่อแผ่นงานใน 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.