Quiero evitar que otros editen los contenidos de la celda en mi hoja de Excel usando VBA. ¿Es posible hacer esto?Cómo bloquear los datos en una celda en excel usando vba
Respuesta
Trate de usar el método Worksheet.Protect
, así:
Sub ProtectActiveSheet()
Dim ws As Worksheet
Set ws = ActiveSheet
ws.Protect DrawingObjects:=True, Contents:=True, _
Scenarios:=True, Password="SamplePassword"
End Sub
Debería, sin embargo, estar preocupado incluida la contraseña en el código VBA. No necesita necesariamente una contraseña si solo intenta poner una barrera simple que evite que el usuario cometa pequeños errores, como eliminar fórmulas, etc.
Además, si desea ver cómo hacer ciertas cosas en VBA en Excel, intente grabar una macro y mirar el código que genera. Esa es una buena manera de comenzar en VBA.
primer lugar, puede elegir el que las células que no quiere estar protegido (para ser editable por el usuario) estableciendo el estado de bloqueo de ellos en Falso:
Worksheets("Sheet1").Range("B2:C3").Locked = False
A continuación, puede proteger la hoja, y todas las otras celdas estarán protegidas. El código para hacer esto, y todavía permita que su código VBA para modificar las células es:
Worksheets("Sheet1").Protect UserInterfaceOnly:=True
o
Call Worksheets("Sheet1").Protect(UserInterfaceOnly:=True)
Quizás también desee d una contraseña, de lo contrario es una cuestión trivial simplemente hacer clic en "desproteger hoja de trabajo" y luego puede realizar modificaciones en las celdas previamente bloqueadas. – Jonathan
la línea de arriba Worksheets ("Sheet1"). Protect (UserInterfaceOnly: = True) debe ser Worksheets ("Sheet1"). Protect UserInterfaceOnly: = True, es decir, sin paréntesis – dinotom
@dinotom, mira el historial de edición y el chico que editó de esa manera explica por qué –
Sub LockCells()
Range("A1:A1").Select
Selection.Locked = True
Selection.FormulaHidden = False
ActiveSheet.Protect DrawingObjects:=False, Contents:=True, Scenarios:= False, AllowFormattingCells:=True, AllowFormattingColumns:=True, AllowFormattingRows:=True, AllowInsertingColumns:=True, AllowInsertingRows:=True, AllowInsertingHyperlinks:=True, AllowDeletingColumns:=True, AllowDeletingRows:=True, AllowSorting:=True, AllowFiltering:=True, AllowUsingPivotTables:=True
End Sub
También puede hacerlo en el nivel de hoja de cálculo capturado en la década de hoja de cálculo evento de cambio Si esa suite necesita más. Permite el bloqueo dinámico basado en los valores, criterios, ect ...
Private Sub Worksheet_Change(ByVal Target As Range)
'set your criteria here
If Target.Column = 1 Then
'must disable events if you change the sheet as it will
'continually trigger the change event
Application.EnableEvents = False
Application.Undo
Application.EnableEvents = True
MsgBox "You cannot do that!"
End If
End Sub
Digamos, por ejemplo, en un caso, si quieres en celdas cerradas de la gama A1 a continuación, I50 a continuación es el código:
Worksheets("Enter your sheet name").Range("A1:I50").Locked = True
ActiveSheet.Protect Password:="Enter your Password"
En otro caso, si ya tienen una hoja protegida y siga por debajo de código:
ActiveSheet.Unprotect Password:="Enter your Password"
Worksheets("Enter your sheet name").Range("A1:I50").Locked = True
ActiveSheet.Protect Password:="Enter your Password"
- 1. Escribir una fórmula en una celda de Excel usando VBA
- 2. cómo obtener un objeto 'Celda' en excel VBA
- 3. OnClick en Excel VBA
- 4. Excel vba: tipo rango y celda
- 5. Última celda no vacía en la fila; Excel VBA
- 6. derretir/remodelar en excel usando VBA?
- 7. valor Get de una celda combinada de un Excel desde su dirección de celda en VBA
- 8. matriz en Excel VBA
- 9. ¿Cómo se obtiene Excel para actualizar los datos en la hoja desde dentro de VBA?
- 10. Establezca ArrayFormula en muchas celdas de Excel usando VBA
- 11. Cómo utilizar VBA para hacer que una celda en Excel 2007 transparente
- 12. ¿Cómo enfocar una celda en Excel VSTO usando C#? ¿Cómo seleccionar la primera celda usando C# en VSTO?
- 13. Actualizar Excel Función VBA Resultados
- 14. Cómo cambiar el formato de una celda a texto usando VBA
- 15. ¿Cómo hacer una celda de Excel ReadOnly usando C#?
- 16. No puedo VBA escribir datos en celdas en Excel 2007/2010 dentro de una función
- 17. Cambio de color de celda En Excel usando C#
- 18. CopyOrigin en Insertar en Excel VBA
- 19. macro VBA Excel escribiendo un entero de entrada en una celda
- 20. Agregue una fórmula de celda en Excel a través de vba
- 21. Lista desplegable en la celda de Excel
- 22. Filtrado de matrices 2D en Excel VBA
- 23. Excel VBA: obtener el valor de la celda, independientemente del formato de la celda
- 24. ¿Cómo acceder a los grupos de contacto en Excel VBA?
- 25. Seleccionar celdas no en blanco en Excel con VBA
- 26. Coloque un botón de comando en una celda MS Excel vba
- 27. ¿Cómo convierto un entero en una cadena en Excel VBA?
- 28. Solicitud HTTPS POST usando VBA para Excel
- 29. Forzar una actualización de pantalla en Excel VBA
- 30. Cerrar la aplicación de Excel usando VBA
http://stackoverflow.com/questions/17111648/how-to-lock-excel-cells-in-vba/ 18868676 # 18868676 –