Borrar el contenido de las celdas en VBA utilizando la referencia de la columna
Estoy tratando de conseguir que un trozo de código borre los datos de algunas celdas, utilizando las referencias de las columnas. Estoy usando el siguiente código:
Worksheets(sheetname).Range(.Cells(2, LastColData), .Cells(LastRowData, LastColData)).ClearContents
Para hacer esto, sin embargo, estoy recibiendo un error en la primera sección .Cells, ¿por qué es esto?
12
3
Puede acceder a toda la columna como un rango utilizando el objeto
Worksheet.Columns
Algo así como
debería borrar el contenido de la columna A
También existe el objeto
Worksheet.Rows
si necesita hacer algo similar para las filasEl error que está recibiendo es probablemente debido a la falta de un bloque con.
Puede leer sobre los bloques with aquí: Ayuda de Microsoft
Como mencionó Gary's Student, tendrías que eliminar el punto antes de
Cells
para que el código funcione como lo escribiste originalmente. No puedo estar seguro, ya que sólo incluiste la única línea de código, pero el error que obtuviste al eliminar los puntos podría tener algo que ver con la forma en que definiste tus variables.He ejecutado tu línea de código con las variables definidas como enteros y ha funcionado:
No creo que una sentencia
With
sea apropiada para la línea de código que has compartido, pero si tuvieras que usar una, laWith
estaría al principio de la línea que define el objeto que estás manipulando. Aquí está tu código reescrito usando una declaraciónWith
innecesaria:Las sentencias
With
están diseñadas para ahorrarte el tener que volver a escribir el código y para hacer que tu código sea más fácil de leer. Son útiles y apropiadas si se hace más de una cosa con un objeto. Por ejemplo, si quiere convertir la columna en roja y añadirle un borde negro grueso, puede utilizar una sentenciaWith
como ésta:De lo contrario, tendría que declarar el rango para cada acción o propiedad, así:
Espero que esto te dé una idea de por qué Gary's Student creía que el compilador podría estar esperando un
With
(aunque fuera inapropiado) y cómo y cuándo unWith
puede ser útil en tu código.Necesita una declaración Con antes de esto. O hacer el .Cells en Cells