PDA

View Full Version : เขียน Code เช็ค File ว่าเปิดอยู่หรือไม่



HS8MQM
5 Jul 2007, 07:59
ในการรันโปรแกรมจะต้องเปิด File Book1.xls
จึงอยากจะสอบถาม การเขียน Code เช็คว่า File Book1.xls เปิดอยู่หรือไม่ จะเขียนอย่างไรครับ
ขอบคุณมากครับ

addy05
5 Jul 2007, 13:47
Dim wbkObj As Workbook
Dim blnFound As Boolean
For Each wbkObj In Workbooks
If wbkObj .Name = "Book1" Then
blnFound = True
Exit For
End If
Next
If blnFound Then MsgBox "Book1 เปิดใช้งานแล้ว" Else MsgBox "Book1 ยังไม่เปิดใช้งาน"

HS8MQM
6 Jul 2007, 07:45
คุณ addy05
ขอบคุณมากครับ

มิตรภาพ
19 Jul 2007, 11:31
ขออนุญาตคุณ addy05 และคุณ HS8MQM ด้วยนะครับ ผมขอเสนออีกวิธีหนึ่ง
1. สร้างฟังก์ชั่นต่อไปนี้

Function WrkOpened(WrkName As String) As Boolean
WrkOpened = False
On Error GoTo endFunction
If Len(Application.Workbooks(WrkName).Name) > 0 Then WrkOpened = True
endFunction:
End Function
ฟังก์ชั่นจะคืนค่า False เมื่อไฟล์ยังไม่ได้เปิด และ True เมื่อพบว่าไฟล์ถูกเปิดอยู่แล้ว
2. ตัวอย่างการเรียกใช้งาน

Sub YourCode()
If Not WrkOpened("Book1.xls") Then Workbooks.Open "Book1.xls"
.....
.....
End Sub

อรวีร์
19 Jul 2007, 15:20
เยี่ยมเลยค่ะคุณมิตรภาพ เป็นแนวทางการเขียนที่ดี แต่ขอเสริมนิดคือ การใช้
On Error GoTo . . . . . . . หรือ On Error Resume Next
ควรปิดด้วย
On Error GoTo 0

ลองดูแบบนี้ค่ะ

Function WrkOpened(WrkName As String) As Boolean
WrkOpened = False
On Error GoTo endFunction
WrkOpened = Len(Application.Workbooks(WrkName).Name)
endFunction:
On Error GoTo 0
End Function