Vba: ตรวจสอบว่าสมุดงานเปิดอยู่หรือไม่ (พร้อมตัวอย่าง)
คุณสามารถใช้ไวยากรณ์ต่อไปนี้ใน VBA เพื่อตรวจสอบว่าสมุดงานใดเปิดอยู่ในปัจจุบัน
SubCheckWorkbookOpen ()
Dim resultCheck As Boolean
Dim wb As Workbook
Dim specific_wb As String
On Error Resume Next
specific_wb = InputBox("Check if this workbook is open:")
Set wb = Application.Workbooks.Item(specific_wb)
resultCheck = Not wb Is Nothing
If resultCheck Then
MsgBox “Workbook is open”
Else
MsgBox “Workbook is not open”
End If
End Sub
เมื่อเรียกใช้แมโครนี้ กล่องป้อนข้อมูลจะปรากฏขึ้นโดยที่ผู้ใช้สามารถพิมพ์ชื่อของสมุดงาน Excel และแมโครจะสร้างกล่องข้อความพร้อมผลลัพธ์อย่างใดอย่างหนึ่งต่อไปนี้:
- “ไฟล์เปิดอยู่”
- “ไฟล์ไม่เปิด”
ตัวอย่างต่อไปนี้แสดงวิธีใช้ไวยากรณ์นี้ในทางปฏิบัติ
ตัวอย่าง: วิธีตรวจสอบว่าสมุดงานเปิดโดยใช้ VBA หรือไม่
สมมติว่าขณะนี้เรามีสมุดงานสองเล่มที่เปิดอยู่โดยมีชื่อต่อไปนี้:
- my_workbook1.xlsx
- my_workbook2.xlsx
สมมติว่าเราต้องการตรวจสอบว่าสมุดงานชื่อ my_workbook1.xlsx เปิดอยู่หรือไม่
เราสามารถสร้างมาโครต่อไปนี้เพื่อทำสิ่งนี้:
SubCheckWorkbookOpen ()
Dim resultCheck As Boolean
Dim wb As Workbook
Dim specific_wb As String
On Error Resume Next
specific_wb = InputBox("Check if this workbook is open:")
Set wb = Application.Workbooks.Item(specific_wb)
resultCheck = Not wb Is Nothing
If resultCheck Then
MsgBox “Workbook is open”
Else
MsgBox “Workbook is not open”
End If
End Sub
เมื่อเราเรียกใช้แมโครนี้ กล่องจะปรากฏขึ้นโดยที่ฉันสามารถพิมพ์ my_workbook1.xlsx ลงในช่องป้อนข้อมูล:
เมื่อฉันคลิก OK มาโครจะสร้างกล่องข้อความต่อไปนี้:
แมโครแสดง “สมุดงานเปิดอยู่” อย่างถูกต้องเพื่อระบุว่าสมุดงานที่มีชื่อนั้นเปิดอยู่ในขณะนี้
ตอนนี้ สมมติว่าฉันพิมพ์ชื่อสมุดงานที่ไม่ได้เปิดอยู่ในปัจจุบัน:
เมื่อฉันคลิก OK มาโครจะสร้างกล่องข้อความต่อไปนี้:
แมโครแสดง “สมุดงานไม่ได้เปิด” อย่างถูกต้องเพื่อระบุว่าสมุดงานที่มีชื่อนั้นไม่ได้เปิดอยู่ในขณะนี้
แหล่งข้อมูลเพิ่มเติม
บทช่วยสอนต่อไปนี้จะอธิบายวิธีการทำงานทั่วไปอื่นๆ ใน VBA:
VBA: วิธีนับจำนวนแผ่นงานในสมุดงาน
VBA: วิธีแทรกหลายคอลัมน์
VBA: วิธีแทรกหลายบรรทัด