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

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

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