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 หรือไม่