Option explicite
Copy_Paste3 secondaires ()
Faible wb comme cahier de travail
Faible objFileDLG comme Office.FileDialog
Faible strFilePath, lcTargetCell
Faibles intSrcRows comme nombre entier
Faibles intTgtRows comme nombre entier
ChDir « D:\Data\ »
Placer l'objFileDLG = l'Application.FileDialog (le msoFileDialogFilePicker)
Obscurcir le copyRange comme gamme
intTgtRows = 2
Faire tandis que vrai
strFilePath = ""
Avec l'objFileDLG
. Filters.Add « Excel classe », « *.xls », 1
.FilterIndex = 1
.AllowMultiSelect = faux
. Le titre = « choisissent le cahier de travail pour copier de »
Si. Montrer () <> 0 alors
strFilePath = .SelectedItems (1)
Finir si
Finir avec
Si l'équilibre (strFilePath) = "" sortent alors faire
Placer wb = Workbooks.Open (le strFilePath)
intSrcRows = wb. Feuilles de travail (1).Cells (Cells.Rows.Count, « A »). Extrémité (xlUp). Rangée
Placer le copyRange = le wb. Feuilles de travail (1).Range (« B6 : B » et intSrcRows)
Placer le copyRange = l'union (copyRange, copyRange.Offset (, 4), copyRange.Offset (, 6).Resize (, 6))
copyRange.Copy
Placent le lcTargetCell = le ThisWorkbook.Worksheets (2).Range (« A » et Rows.Count). Extrémité (xlUp). Excentrage (1)
pâte de lcTargetCell.PasteSpecial : =xlPasteValuesAndNumberFormats, opération : = _
xlNone, SkipBlanks : Le =False, transposent : =False
ThisWorkbook.Worksheets (2).Range (« B : B ») .NumberFormat = « densité double-mmm »
Application.CutCopyMode = faux
wb. Fin
Placer wb = rien
intTgtRows = intTgtRows + intSrcRows - 1
Boucle
'nouvelles lignes
Sur le résumé d'erreur après
ThisWorkbook.Worksheets (1).Columns (1).SpecialCells (xlBlanks) .EntireRow.Delete
Sous-marin d'extrémité
|