Vba: วิธีนับจำนวนแผ่นงานในสมุดงาน
คุณสามารถใช้วิธีการต่อไปนี้เพื่อนับจำนวนแผ่นงานในสมุดงานใน Excel:
วิธีที่ 1: นับจำนวนแผ่นงานในสมุดงานที่ใช้งานอยู่
SubCountSheetsActive ()
Range(" A1 ") = ThisWorkbook.Worksheets.Count
End Sub
วิธีที่ 2: นับจำนวนแผ่นงานในสมุดงานที่เปิดอยู่
SubCountSheetsOpen ()
Range(" A1 ") = Workbooks(" my_data.xlsx ").Sheets.Count
End Sub
วิธีที่ 3: นับจำนวนแผ่นในแฟ้มปิด
SubCountSheetsClosed ()
Application.DisplayAlerts = False
Set wb = Workbooks.Open(" C:\Users\Bob\Desktop\my_data.xlsx ")
'count sheets in closed workbook and display count in cell A1 of current workbook
ThisWorkbook.Sheets(1).Range(" A1 ").Value = wb.Sheets.Count
wb.Close SaveChanges:=True
Application.DisplayAlerts = True
End Sub
ตัวอย่างต่อไปนี้แสดงวิธีการใช้แต่ละวิธีในทางปฏิบัติ
ตัวอย่างที่ 1: นับจำนวนแผ่นงานในสมุดงานที่ใช้งานอยู่
สมมติว่าเราเปิดเวิร์กบุ๊ก Excel ต่อไปนี้และเรากำลังดูอยู่:
เราสามารถใช้มาโครต่อไปนี้เพื่อนับจำนวนแผ่นงานทั้งหมดในสมุดงานนี้และแสดงตัวเลขในเซลล์ A1:
SubCountSheetsActive ()
Range(" A1 ") = ThisWorkbook.Worksheets.Count
End Sub
เมื่อเราเรียกใช้แมโครนี้ เราได้รับผลลัพธ์ต่อไปนี้:
โปรดสังเกตว่าเซลล์ A1 มีค่า 6
สิ่งนี้บอกเราว่ามี 6 แผ่นงานในสมุดงานนี้
ตัวอย่างที่ 2: นับจำนวนแผ่นในแฟ้มที่เปิดอยู่
สมมติว่าเรามีสมุดงาน Excel ชื่อ my_data.xlsx โดยเปิดแผ่นงานไว้สองแผ่น แต่เราไม่ได้ดูอยู่ในขณะนี้
เราสามารถใช้มาโครต่อไปนี้เพื่อนับจำนวนแผ่นงานทั้งหมดในสมุดงานนี้และแสดงหมายเลขในเซลล์ A1 ของสมุดงานที่ใช้งานอยู่:
SubCountSheetsOpen ()
Range(" A1 ") = Workbooks(" my_data.xlsx ").Sheets.Count
End Sub
เมื่อเราเรียกใช้แมโครนี้ เราได้รับผลลัพธ์ต่อไปนี้:
โปรดสังเกตว่าเซลล์ A1 มีค่า 2
สิ่งนี้บอกเราว่ามี 2 แผ่นงานในสมุดงานที่เปิดอยู่ชื่อ my_data.xlsx
ตัวอย่างที่ 3: การนับจำนวนแผ่นในแฟ้มปิด
สมมติว่าเรามีสมุดงาน Excel ชื่อ my_data.xlsx โดยมีสองแผ่นงานที่ไม่ได้เปิดอยู่ในขณะนี้แต่อยู่ในตำแหน่งไฟล์ต่อไปนี้:
C:\Users\Bob\Desktop\my_data.xlsx
เราสามารถใช้มาโครต่อไปนี้เพื่อนับจำนวนแผ่นงานทั้งหมดในสมุดงานนี้และแสดงหมายเลขในเซลล์ A1 ของแผ่นงานแรกของสมุดงานที่ใช้งานอยู่:
SubCountSheetsClosed ()
Application.DisplayAlerts = False
Set wb = Workbooks.Open(" C:\Users\Bob\Desktop\my_data.xlsx ")
'count sheets in closed workbook and display count in cell A1 of current workbook
ThisWorkbook.Sheets(1).Range(" A1 ").Value = wb.Sheets.Count
wb.Close SaveChanges:=True
Application.DisplayAlerts = True
End Sub
เมื่อเราเรียกใช้แมโครนี้ เราได้รับผลลัพธ์ต่อไปนี้:
โปรดสังเกตว่าเซลล์ A1 มีค่า 2
สิ่งนี้บอกเราว่ามี 2 แผ่นงานในสมุดงานแบบปิดที่เรียกว่า my_data.xlsx
หมายเหตุ : ในโค้ด Application.DisplayAlerts=False จะบอก VBA ว่าอย่าแสดงกระบวนการเปิดสมุดงานที่ปิด นับแผ่นงาน แล้วปิดสมุดงาน
แหล่งข้อมูลเพิ่มเติม
บทช่วยสอนต่อไปนี้จะอธิบายวิธีการทำงานทั่วไปอื่นๆ ใน VBA:
VBA: วิธีนับจำนวนแถวในช่วง
VBA: วิธีนับเซลล์ด้วยข้อความเฉพาะ
VBA: วิธีเขียนฟังก์ชัน COUNTIF และ COUNTIFS