Vba: วิธีรับรายการสมุดงานที่เปิดอยู่ทั้งหมด


คุณสามารถใช้ For Each loop ใน VBA เพื่อรับรายการสมุดงาน Excel ที่เปิดอยู่ทั้งหมด

นี่เป็นวิธีทั่วไปในการดำเนินการนี้ในทางปฏิบัติ:

 Sub ListAllOpenWorkbooks()

Dim wbName As String
Dim wb As Workbook

'add each open workbook to message box
For Each wb In Application.Workbooks
    wbName = wbName & wb.Name & vbCrLf
Next

'display message box with all open workbooks
MsgBox wbName

End Sub

มาโครนี้จะสร้างกล่องข้อความที่มีรายการสมุดงาน Excel ที่เปิดอยู่ทั้งหมด

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

ตัวอย่าง: รับรายการสมุดงานที่เปิดอยู่ทั้งหมดโดยใช้ VBA

สมมติว่าสมุดงาน Excel สามรายการต่อไปนี้เปิดอยู่:

  • Baseball_data.xlsx
  • football_data.xlsx
  • hockey_data.xlsx

สมมติว่าเราต้องการใช้ VBA เพื่อแสดงรายการชื่อของสมุดงานที่เปิดอยู่ทั้งหมดนี้

เราสามารถสร้างมาโครต่อไปนี้เพื่อทำสิ่งนี้:

 Sub ListAllOpenWorkbooks()

Dim wbName As String
Dim wb As Workbook

'add each open workbook to message box
For Each wb In Application.Workbooks
    wbName = wbName & wb.Name & vbCrLf
Next

'display message box with all open workbooks
MsgBox wbName

End Sub

เมื่อเราเรียกใช้แมโครนี้ เราได้รับผลลัพธ์ต่อไปนี้:

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

โปรดทราบว่าเราใช้ค่าคงที่ vbCrLf ใน For Each loop เพื่อแทรกการขึ้นบรรทัดใหม่ ซึ่งจะเลื่อนเคอร์เซอร์ไปที่บรรทัดถัดไป

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

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

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

วิธีเปลี่ยนชื่อไฟล์โดยใช้ VBA
วิธีแสดงรายการไฟล์ในโฟลเดอร์โดยใช้ VBA
วิธีเปิดไฟล์ทั้งหมดในโฟลเดอร์โดยใช้ VBA
วิธีตรวจสอบว่ามีไฟล์อยู่โดยใช้ VBA หรือไม่

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

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