Abrir libro de trabajo como solo lectura
Cuando se trabaja con un libro de Excel usando VBA, puede haber ocasiones en las que necesite obtener información de otro libro.
En esos casos, puede abrir el otro libro en modo de solo lectura para evitar cambios accidentales en los datos mientras muestra y obtiene la información necesaria.
En esta página, se explica cómo abrir un libro en modo de solo lectura usando VBA.
Abrir un libro en modo de solo lectura
Para abrir un libro en modo de solo lectura, especifique True
para el argumento ReadOnly
del método Workbooks.Open
.
Workbooks.Open(ReadOnly:=True)
El siguiente código es un ejemplo de cómo abrir sample.xlsx
en la carpeta de documentos del usuario en modo de solo lectura.
Dim wb As Workbook, path As String
' Carpeta de documentos del usuario
path = Environ("USERPROFILE") & "\Documents\sample.xlsx"
' Abrir el libro de trabajo como solo lectura
Set wb = Workbooks.Open(path, ReadOnly:=True)
' Cerrar el libro de trabajo
wb.Close
Puntos a tener en cuenta
Un libro de trabajo abierto en modo de solo lectura no se puede sobrescribir al guardar. Es necesario guardarlo con un nombre diferente.
Si la ruta no es correcta o no tiene permisos de acceso, el libro de trabajo no se abrirá. Se recomienda realizar un manejo de errores adecuado.
El siguiente código es un ejemplo de cómo cerrar un libro de trabajo si ya estaba abierto cuando ocurrió un error.
Public Sub OpenReadOnlyWorkbook()
On Error GoTo ErrorHandler
Dim wb As Workbook, path As String
' Carpeta de documentos del usuario
path = Environ("USERPROFILE") & "\Documents\sample.xlsx"
' Abrir el libro de trabajo como solo lectura
Set wb = Workbooks.Open(path, ReadOnly:=True)
' Algún procesamiento
' Cerrar el libro de trabajo
wb.Close
Exit Sub
ErrorHandler:
' Si el libro ya estaba abierto, ciérralo
If Not wb Is Nothing Then
wb.Close
End If
MsgBox "Se ha producido un error."
End Sub
Resumen
Se presentó un método para abrir un libro de Excel como solo lectura utilizando VBA.
Utilice el código de muestra mencionado anteriormente como referencia y personalícelo según sus necesidades.