Excel - Una macro para copiar filas y columnas

Problema

Estoy trabajando en una macro para copiar de un libro de trabajo (hoja) y pegar en otro libro de trabajo (hoja)

Office 2007 y Windows XP

En el primer libro de trabajo, tengo todos los datos que de acuerdo con los requisitos. se filtra. ¿Cómo decir en macro para copiar los registros de 'resultado'? Estos registros de resultados siempre están cambiando.

Estoy grabando macro con estos pasos:

  • 1. abrir output.xlsx (libro de trabajo de destino)
  • 2. Ctrl + A (para seleccionar todos los datos que ya están allí) y borrar (todos)
  • 3. libro de origen (input.xlsm) copia los registros de resultados
  • 4. pegar especial en el libro de destino
  • 5. Souce el libro de trabajo y deja de grabar macro

El resto de la macro funciona bien, el problema es cómo configurar el rango de registros de resultados, que puede decir que es dinámico.

A continuación se muestra la macro, pero su código generado automáticamente:

 Sub Macro1 () '' Macro21 Macro '' Libros de trabajo. Nombre de archivo abierto: = _ "O: dataorderrefList-output.xltx" _, Editable: = True Selection.CurrentRegion.Select Selection.Clear Range ("A1"). Seleccione Windows ( "ReferenceList.xlsm"). Active Selection.CurrentRegion.Select Selection.Copy Windows ("refList-output.xltx"). Active Selection.PasteSpecial Paste: = xlPasteColumnWidths, Operation: = xlNone, _ SkipBlanks: = False, Transpose: = False Selection.PasteSpecial Paste: = xlPasteFormats, Operation: = xlNone, _ SkipBlanks: = False, Transpose: = False Selection.PasteSpecial Paste: = xlPasteValues, Operation: = xlNone, SkipBlanks _: = False, Transpose: = False Range (" A1 "). Seleccione Application.CutCopyMode = False ActiveWorkbook.Save Windows (" ReferenceList.xlsm "). Active el rango (" Table_Query_from_MS_Access_Database [#Headers, [Order No]] "). Seleccione End Sub 

Está funcionando bien, pero tengo que hacer una selección basada en los registros de resultados y también en otro formato.

Solución

He probado mi sugerencia. cuando MERAMENTE selecciona una selección de datos filtrados incluye las celdas ocultas también (ocultas debido al filtrado) en su lugar, debe usar la propiedad "specialcells" como me sugirió. puede modificar sobre esa base

También hay una disposición SIN activar las diferentes ventanas o seleccionar diferentes rangos.

Tengo alternativa para la porción de tu macro en el pasado.

 ThisWorkbook.Worksheets ("sheet1"). UsedRange.SpecialCells (xlCellTypeVisible) .Copia Workbooks ("book4"). Worksheets ("sheet1"). Range ("A1"). PasteSpecialVolucción de la paleta : = xlPasteFormats _, Pegar: = xlPasteColumnWidths 

Si los dos libros son libros guardados, debe usar "book4.xls" o "book4.xlsm" "este libro significa el módulo del libro donde está estacionada la macro. Puede intentar modificar la macro.

Nota

Gracias a venkat1926 por este consejo en el foro.

Artículo Anterior Artículo Siguiente

Los Mejores Consejos