¿Cómo seleccionar celdas calificadas de la hoja1 y copiar el contenido a la hoja2 usando vba?
La idea es descubrir dinámicamente cuántas columnas y filas hay en la hoja1, y luego determinar si las celdas de cada columna tienen un color de sombreado. Si no, cópielo, si lo tiene, omítalo. . El código VBA se puede escribir de la siguiente forma (los siguientes comentarios están marcados con símbolos de comentario y se pueden copiar y ejecutar completamente en VBA).
Subcopia celdas sin sombreado ()
Dim intCol_num%, intRow_num%, i%, intDw_a%, intShRow_num%
intCol_num = Sheets( 1). Cells(1, 100).End(xlToLeft).Column 'Encuentra el número de columna de la última columna no vacía en la hoja1
Para i = 1 a intCol_num Paso 1 'Recorre cada columna no vacía
intRow_num = Sheets(1).Range("a65536").End(xlUp).Row 'Encuentra la fila de la última celda no vacía desde la fila 65536 hacia arriba en la columna actualmente enlazada al No.
For Each run In Sheets(1).Range(Sheets(1).Cells(1, i), Sheets(1).Cells(intRow_num, i)) 'Recorre las columnas actualmente enlazadas a no -celda vacía
intDw_a = ran.Interior.ColorIndex 'Proponer el valor del índice de color de fondo de la celda actual
Si intDw_a < 0 Entonces
intShRow_num = Hojas (2 ).Cells(65536, i).End(xlUp).Row 'Encuentra el número de fila de la última celda no vacía en la columna correspondiente de la hoja2
Si Sheets(2).Cells(1, i).Value <> "" Entonces
ran.Copy Sheets(2).Cells(intShRow_num + 1, i)
Else
ran.Copy Sheets(2).Cells(intShRow_num, i)
Finalizar si
Finalizar si
Siguiente
Siguiente
Fin del subtítulo