Excel: una macro per copiare righe e colonne

Problema

Sto lavorando su una macro per copiare da una cartella di lavoro (foglio) e incollarla su un'altra cartella di lavoro (foglio)

Office 2007 e Windows XP

Nella prima cartella di lavoro, ho tutti i dati che secondo le richieste. viene filtrato Come dire in macro per copiare i record 'risultato'? Questi record di risultati cambiano continuamente.

Sto registrando macro con questi passaggi:

  • 1. apri output.xlsx (cartella di lavoro di destinazione)
  • 2. ctrl + A (per selezionare tutti i dati già presenti) e deseleziona (tutti)
  • 3. cartella di lavoro di origine (input.xlsm) copia i record dei risultati
  • 4. incolla speciale nella cartella di lavoro del target
  • 5. Salvare la cartella di lavoro e interrompere la registrazione della macro

Il resto della macro funziona bene, il problema è come impostare l'intervallo di record dei risultati che è possibile dire dinamico.

Sotto c'è la Macro, ma il suo codice generato automaticamente:

 Sotto Macro1 () '' Macro21 Macro '' Workbooks.Nome file apri: = _ "O: dataorderrefList-output.xltx" _, Modificabile: = True Selection.CurrentRegion.Seleziona Selection.Clear Range ("A1"). Seleziona Windows ( "ReferenceList.xlsm"). Attiva Selection.CurrentRegion.Seleziona Selection.Copy Windows ("refList-output.xltx"). Attiva Selection.PasteSpecial Paste: = xlPasteColumnWidths, Operazione: = xlNone, _ SkipBlanks: = False, Transpose: = False Selection.PasteSpecial Paste: = xlPasteFormats, Operazione: = xlNone, _ SkipBlanks: = False, Transpose: = False Selection.PasteSpecial Paste: = xlPasteValues, Operazione: = xlNone, SkipBlanks _: = False, Transpose: = False Range (" A1 "). Seleziona Application.CutCopyMode = False ActiveWorkbook.Save Windows (" ReferenceList.xlsm "). Attiva intervallo (" Table_Query_from_MS_Access_Database [#Headers, [Order No]] "). Seleziona End Sub 

Funziona bene, ma devo fare la selezione in base ai record dei risultati e altre formattazioni.

Soluzione

Ho provato il mio suggerimento. quando selezioni SEMPRE una selezione di dati filtrati include anche le celle nascoste (nascoste a causa del filtraggio) invece devi usare la proprietà "specialcells" come suggerito da me. puoi modificare su questa base.

C'è anche una disposizione SENZA attivare le diverse finestre o selezionare intervalli diversi.

Ho dato un'alternativa per la parte pastespecial della tua macro

 ThisWorkbook.Worksheets ("sheet1"). UsedRange.SpecialCells (xlCellTypeVisible) .Copy Workbooks ("book4"). Fogli di lavoro ("foglio1"). Intervallo ("A1"). PasteSpecial Paste: = xlPasteValues, Paste: = xlPasteColumnWidths, Paste : = xlPasteFormats _, Paste: = xlPasteColumnWidths 

Se i due libri sono libri salvati dovresti usare "book4.xls" o "book4.xlsm" "questa cartella di lavoro significa che il modulo della cartella di lavoro dove è parcheggiata la macro può provare a modificare la macro.

Nota

Grazie a venkat1926 per questo suggerimento sul forum.

Articolo Precedente Articolo Successivo

I Migliori Consigli