Page 1 of 1
ต้องการหาว่ามีไฟล์ที่ต้องการถูกเปิดอยู่หรือไม่
Posted: Sun Mar 04, 2018 10:18 am
by apinomon
สวัสดีครับ
คือว่าผมต้องการจะทราบว่ามีไฟล์ BBB.XLSX (ชื่อสมมติ) เปิดอยู่หรือไม่ โดยเขียดโค้ดในการค้นหาที่ ไฟล์ AAA.XLSM (ชื่อสมมติ) ครับ
ถ้าเปิดอยู่ให้แสดงกล่องข้อความว่า TRUE
ถ้าไม่ใช่ให้แสดงกล่องข้อความว่า False
ผมลองใช้โค้ด
Code: Select all
If ActiveWorkbook.Name = "BBB.xlsx" Then
MsgBox "True"
Else: MsgBox "False"
End If
ก็ไม่ได้ครับ
และลองใช้
Code: Select all
If OpenWorkbook.Name = "BBB.xlsx" Then
MsgBox "True"
Else: MsgBox "False"
End If
ก็ Error ครับ
รบกวนแนะนำด้วยครับ
Re: ต้องการหาว่ามีไฟล์ที่ต้องการถูกเปิดอยู่หรือไม่
Posted: Sun Mar 04, 2018 10:53 am
by puriwutpokin
apinomon wrote: Sun Mar 04, 2018 10:18 am
สวัสดีครับ
คือว่าผมต้องการจะทราบว่ามีไฟล์ BBB.XLSX (ชื่อสมมติ) เปิดอยู่หรือไม่ โดยเขียดโค้ดในการค้นหาที่ ไฟล์ AAA.XLSM (ชื่อสมมติ) ครับ
ถ้าเปิดอยู่ให้แสดงกล่องข้อความว่า TRUE
ถ้าไม่ใช่ให้แสดงกล่องข้อความว่า False
ผมลองใช้โค้ด
Code: Select all
If ActiveWorkbook.Name = "BBB.xlsx" Then
MsgBox "True"
Else: MsgBox "False"
End If
ก็ไม่ได้ครับ
และลองใช้
Code: Select all
If OpenWorkbook.Name = "BBB.xlsx" Then
MsgBox "True"
Else: MsgBox "False"
End If
ก็ Error ครับ
รบกวนแนะนำด้วยครับ
ลองปรับเป็นโค้ดนี้ครับ รันตัวCheckStatus
Code: Select all
Function IsWorkBookOpen(Name As String) As Boolean
Dim xWb As Workbook
On Error Resume Next
Set xWb = Application.Workbooks.Item(Name)
IsWorkBookOpen = (Not xWb Is Nothing)
End Function
Sub CheckStatus()
Dim xRet As Boolean
xRet = IsWorkBookOpen("BBB.xlsx")
If xRet Then
MsgBox "True"
Else
MsgBox "False"
End If
End Sub
Re: ต้องการหาว่ามีไฟล์ที่ต้องการถูกเปิดอยู่หรือไม่
Posted: Sun Mar 04, 2018 10:56 am
by snasui
apinomon wrote: Sun Mar 04, 2018 10:18 am
คือว่าผมต้องการจะทราบว่ามีไฟล์ BBB.XLSX (ชื่อสมมติ) เปิดอยู่หรือไม่ โดยเขียดโค้ดในการค้นหาที่ ไฟล์ AAA.XLSM (ชื่อสมมติ) ครับ
ถ้าเปิดอยู่ให้แสดงกล่องข้อความว่า TRUE
ถ้าไม่ใช่ให้แสดงกล่องข้อความว่า False
สามารถ Loop เข้าไปยังไฟล์ทุกไฟล์ที่เปิดอยู่แล้วตรวจสอบว่าเป็นไฟล์ที่ต้อการหรือไม่ตามตัวอย่าง Code ด้านล่างครับ
Code: Select all
Dim wb As Workbook
For Each wb In Workbooks
If wb.Name = "BBB.xlsx" Then
MsgBox "True"
Exit Sub
End If
Next wb
MsgBox "False""
Re: ต้องการหาว่ามีไฟล์ที่ต้องการถูกเปิดอยู่หรือไม่
Posted: Sun Mar 04, 2018 1:54 pm
by apinomon
ขอบคุณมากครับ
แก้ไขโค้ดตามแล้วทำได้เลยครับ