برایان یک کتاب کار پیچیده دارد که سایر کارنامه های پشتیبانی را به طور خلاصه باز می کند و سپس آنها را می بندد و تغییرات را ذخیره می کند. او دفتری با سه نفر دارد که از ماکروهای او استفاده میکنند و در مواردی با هم درگیری پیدا میکنند که در آن دو نفر در حال تلاش برای دریافت شماره سفارش خرید همزمان هستند. این باعث می شود که کتاب کار PO در حالت فقط خواندنی برای دومین اتفاق باز شود، که برای کاربران گیج کننده است. برایان تعجب می کند که آیا خطی از کد VBA وجود دارد که دستور open workbook را متوقف کند، اگر کتاب کار مورد نظر قبلاً توسط کاربر دیگری باز شده باشد. به این ترتیب او می تواند مشکلات بالقوه را قبل از وقوع آنها تشخیص دهد.
داشتن کد بسیار ساده تر است، پس از باز کردن، بررسی کنید که آیا کتاب کار در حالت فقط خواندنی باز شده است یا خیر. اگر این کار را کرد، می توانید اقدامی متناسب با موقعیت خود انجام دهید. (به عنوان مثال، می توانید کتاب کار را ببندید، مدت کوتاهی منتظر بمانید، و دوباره عملیات و آزمایش را امتحان کنید.) در اینجا چگونه می توانید بررسی کنید تا وضعیت فقط خواندنی را ببینید:
Set wkBook1 = Workbooks.Open("c:MyBigBook.xlsx")
If wkBook1.ReadOnly Then
wkBook1.Close False
End If
توجه داشته باشید که این ویژگی ReadOnly است که اطلاعات مورد نظر را به دست می دهد. اگر لازم است فایل را از قبل بررسی کنید، ممکن است از برخی از دستورات دسترسی به فایل موجود در VBA استفاده کنید. این همان کاری است که تابع زیر انجام می دهد.
Function FileIsLocked(strFileName As String) As Boolean
FileIsLocked = False
On Error Resume Next
Open strFileName For Binary Access Read Write Lock Read Write As #1
Close #1
If an error occurs, the document is currently open
If Err.Number <> 0 Then
FileIsLocked = True
Err.Clear
End If
End Function
برای استفاده از تابع، نام (شامل مسیر کامل) کتاب کاری را که می خواهید بررسی کنید، آن را ارسال کنید. اگر فایل قفل باشد، تابع True و اگر فایل قفل نباشد، False را برمیگرداند. با این حال، به یاد داشته باشید که از زمانی که این تابع فایل را بررسی می کند تا زمانی که شما واقعاً سعی می کنید فایل را باز کنید، ممکن است توسط شخص دیگری باز شده باشد. بنابراین، اولین رویکرد (بررسی پس از تلاش برای باز کردن) ممکن است بهترین رویکرد برای استفاده باشد.)
همچنین لازم به ذکر است که می توانید سایر کتاب های کار را نیز به عنوان کتاب های کار مشترک ذخیره کنید. این به آنها اجازه می دهد تا توسط چندین کاربر بدون هیچ مشکلی باز شوند. البته، باید بررسی کنید که این رویکرد چگونه بر دادههایی که ممکن است بخواهید در کتابهای کاری ذخیره کنید تأثیر میگذارد.