Probando si un libro de trabajo está abierto (Microsoft Excel)
Brian tiene un libro de trabajo complejo que abre otros libros de trabajo de apoyo muy brevemente y luego los cierra, guardando los cambios. Tiene una oficina con tres personas que usan sus macros y, en ocasiones, tienen un conflicto en el que dos personas intentan obtener una orden de compra
número al mismo tiempo. Esto hace que el libro de trabajo de PO se abra en modo de «solo lectura» para la segunda aparición, lo que confunde a los usuarios. Brian se pregunta si hay una línea de código VBA que detendrá el comando ‘abrir libro de trabajo’ si el libro de trabajo de destino ya está abierto por un usuario diferente. De esa forma, podría detectar posibles problemas antes de que ocurran.
Es mucho más fácil tener su código, después de abrirlo, verifique si el libro de trabajo se abrió en modo de solo lectura. Si lo hizo, entonces puede tomar una acción apropiada a su situación. (Por ejemplo, puede cerrar el libro de trabajo, esperar un período breve y volver a intentar la operación y realizar la prueba). Así es como puede verificar el estado de solo lectura:
Set wkBook1 = Workbooks.Open("c:\MyBigBook.xlsx") If wkBook1.ReadOnly Then wkBook1.Close False End If
Tenga en cuenta que es la propiedad ReadOnly la que proporciona la información deseada. Si necesita verificar el archivo con anticipación, puede intentar usar algunas de las declaraciones de acceso a archivos disponibles en VBA. Eso es lo que hace la siguiente función.
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
Para usar la función, pásele el nombre (incluida la ruta completa) del libro de trabajo que desea verificar. La función devuelve Verdadero si el archivo está bloqueado y Falso si no lo está. Sin embargo, recuerde que desde el momento en que esta función verifica el archivo hasta el momento en que realmente intenta abrirlo, es posible que otra persona lo haya abierto. Por lo tanto, el primer enfoque (verificar después de intentar abrir) puede ser el mejor enfoque a usar).
También debe tenerse en cuenta que también puede guardar los otros libros de trabajo como libros de trabajo compartidos. Esto permitiría que varios usuarios los abran sin problemas. Por supuesto, querrá comprobar cómo afecta este enfoque a los datos que tal vez desee guardar en los libros de trabajo.
_Nota: _
Si desea saber cómo usar las macros descritas en esta página (o en cualquier otra página de los sitios ExcelTips), he preparado una página especial que incluye información útil.
link: / excelribbon-ExcelTipsMacros [Haga clic aquí para abrir esa página especial en una nueva pestaña del navegador]
.
ExcelTips es su fuente de formación rentable en Microsoft Excel.
Este consejo (5831) se aplica a Microsoft Excel 2007, 2010, 2013, 2016, 2019 y Excel en Office 365.