Vba: วิธีตรวจสอบว่ามีชีตอยู่หรือไม่ (พร้อมตัวอย่าง)


คุณสามารถสร้างฟังก์ชันต่อไปนี้ใน VBA เพื่อตรวจสอบว่ามีแผ่นงานใดอยู่ในสมุดงาน Excel ที่ใช้งานอยู่ในปัจจุบันหรือไม่:

 Function sheetExists(some_sheet As String) As Boolean

On Error Resume Next
sheetExists = (ActiveWorkbook.Sheets(some_sheet).Index > 0)

End Function

ฟังก์ชันนี้จะส่งคืน ค่า TRUE หรือ FALSE เพื่อระบุว่ามีชื่อแผ่นงานเฉพาะอยู่ในสมุดงาน Excel ที่ใช้งานอยู่ในปัจจุบันหรือไม่

โปรดทราบว่าฟังก์ชันนี้จะตรวจสอบว่าหมายเลขดัชนีของชีตมากกว่า 0 หรือไม่

หากมีชีตอยู่ หมายเลขดัชนีชีตจะมีค่าเป็นอย่างน้อย 1 ทำให้ฟังก์ชันส่งคืนค่า TRUE

ตัวอย่างต่อไปนี้แสดงวิธีใช้ฟังก์ชันนี้ในทางปฏิบัติ

ตัวอย่าง: ใช้ VBA เพื่อตรวจสอบว่ามีแผ่นงานอยู่หรือไม่

สมมติว่าเรามีสมุดงาน Excel ต่อไปนี้ซึ่งมีสามแผ่น:

เราสามารถสร้างฟังก์ชันต่อไปนี้ใน VBA เพื่อตรวจสอบว่ามีชื่อแผ่นงานเฉพาะอยู่ในสมุดงานนี้หรือไม่:

 Function sheetExists(some_sheet As String) As Boolean

On Error Resume Next
sheetExists = (ActiveWorkbook.Sheets(some_sheet).Index > 0)

End Function

จากนั้นเราสามารถพิมพ์สูตรต่อไปนี้ในเซลล์ A1 ของแผ่นงานที่ใช้งานอยู่ในปัจจุบันเพื่อตรวจสอบว่าชื่อแผ่นงาน “ทีม” มีอยู่ในสมุดงานนี้หรือไม่:

 =sheetExists("Teams")

ภาพหน้าจอต่อไปนี้แสดงวิธีใช้สูตรนี้ในทางปฏิบัติ:

ฟังก์ชันส่งคืน TRUE เนื่องจากชื่อแผ่นงานนี้มีอยู่ในสมุดงาน

โปรดทราบว่าฟังก์ชันนี้ไม่คำนึงถึงขนาดตัวพิมพ์

ตัวอย่างเช่น หากเราตรวจสอบว่ามีชื่อชีต “ทีม” อยู่หรือไม่ ฟังก์ชันก็จะส่งคืน TRUE :

อย่างไรก็ตาม สมมติว่าเราตรวจสอบว่ามีชื่อชีต “โค้ช” อยู่หรือไม่:

ฟังก์ชันส่งคืน FALSE เนื่องจากไม่มีชื่อชีตนี้ในสมุดงาน

แหล่งข้อมูลเพิ่มเติม

บทช่วยสอนต่อไปนี้จะอธิบายวิธีการทำงานทั่วไปอื่นๆ ใน VBA:

VBA: วิธีนับจำนวนแผ่นงานในสมุดงาน
VBA: วิธีดึงข้อมูลจากสมุดงานอื่น
VBA: วิธีแทรกหลายบรรทัด

เพิ่มความคิดเห็น

อีเมลของคุณจะไม่แสดงให้คนอื่นเห็น ช่องข้อมูลจำเป็นถูกทำเครื่องหมาย *