Maison >Tutoriel logiciel >Logiciel de bureau >Comment extraire les données de colonnes spécifiées de plusieurs fichiers Excel d'environ 200 et les résumer dans un nouveau fichier
Après avoir exécuté Excel, maintenez la touche alt enfoncée et appuyez sur f11, i, m dans l'ordre
Collez le code ci-dessous, apportez les modifications nécessaires et appuyez sur f5 pour obtenir le résumé des résultats dans la feuille de calcul actuelle.
Sous test()
c = Tableau(1, 3, 5, 7, 8)
p = "d : le répertoire où se trouve le fichier récapitulatif" 'Modifier en fonction de la situation réelle Attention à ne pas rater le dernier
.f = Dir(p & "*.xlsx")
Définir ns = ActiveSheet
Faire jusqu'à f = ""
Définir wb = Workbooks.Open(p & f)
Pour i = 0 à 4
n = n + 1
ns.Cells(2, n).Resize(144).Value = wb.Sheets("Pièce 1").Cells(2, c).Resize(144).Value
Suivant
wb.Fermer Faux
f = Dir
Boucle
Fin du sous-marin
Propriétaire, je pense que ce que vous faites est réalisable. Les moines n'osent pas mentir, et je n'ose pas mentir même si je ne deviens pas moine !
Si vous ne voulez pas renoncer à cette opportunité, j'aimerais essayer, s'il vous plaît HI et laissez-moi un message.
Réponse : lxlzmh2002 - Grand Magicien Niveau 8 2009-8-19 04:40
================================================= === ========================
Propriétaire, aujourd'hui, j'ai aidé quelqu'un à écrire un programme VBA pour fusionner plusieurs tables. Je me suis soudainement souvenu que j'avais vu un message similaire, j'ai donc trouvé votre message et j'y répondrai à nouveau :
.Le code VBA est le suivant :
Dim sht As Worksheet
Dim rs aussi longtemps, js aussi longtemps, ds aussi longtemps
Dim i As Integer
En cas d'erreur, reprendre ensuite
Set sht = Sheets ("Résumé")
Si Err.Number = 0 Alors
Feuilles ("Résumé").Sélectionner
ActiveSheet.Range("A1").CurrentRegion.ClearContents
Autre
Feuilles.Ajouter avant :=Feuilles(1)
ActiveSheet.Name = "Résumé"
Fin si
Feuilles(2).Range("1:1").Copier les feuilles("Résumé").Range("A1")
Pour i = 2 To Sheets.Count
ds = Sheets("Résumé").Range("A65536").End(xlUp).Row + 1
rs = Feuilles(i).Range("A65536").End(xlUp).Row
js = Sheets(i).Range("A1").End(xlToRight).Column
Avec Feuilles(i)
.Sélectionner
.Range(Cells(2, 1), Cells(rs, js)).Copy Sheets("Résumé").Cells(ds, 1)
Fin avec
Suivant
Feuilles ("Résumé").Sélectionner
Le code ci-dessus est utilisé comme suit :
Enregistrez une macro : Menu "Outils"->Macro->Enregistrer la macro)-->Nommez la macro dans le champ "Nom de la macro"->Définissez une touche de raccourci, saisissez une lettre sous "Touche de raccourci"-->Démarrez l'enregistrement après confirmation Macro.
Modifier la macro : après avoir démarré l'enregistrement, vous pouvez directement appuyer sur la touche stop, puis modifier la macro (Outils->Macro->Macro (M)->Sélectionnez la macro que vous venez de créer->Cliquez sur le bouton "Modifier" sur le droite -> Entrez dans l'interface d'édition de macro -> Supprimez tout le contenu entre Sub XXX et End Sub -> Collez ensuite le code du programme ci-dessus -> Appuyez sur le bouton "Enregistrer" de la barre d'outils -> Menu "Fichier" -- > Fermez et revenez à MicorSoft Excel
Exécuter la macro : appuyez sur la touche de raccourci que vous venez de définir (Ctrl+cette lettre), ou sélectionnez le nom de la macro via le menu "Outils" --> Macro --> Macro (M) --> dans la fenêtre, et appuyez sur la touche Bouton "Exécuter" pour exécuter la macro .
================================================= === ==================
Description de la fonction de ce code VBA :
1. Après avoir exécuté le code VBA, le programme ajoutera une feuille de calcul nommée "Résumé".
2. Utilisez la première ligne de la feuille 1 (cela n'a pas de sens de l'appeler feuille 1, le programme connaîtra le nom par lui-même) comme première ligne du tableau "résumé".
3. Ajoutez ensuite toutes les lignes et colonnes à partir de la deuxième ligne de la feuille de calcul, à l'exception du tableau "Résumé", au tableau "Résumé" de manière annexante (la première ligne est généralement considérée comme le titre)
4. Le processus d'ajout est équivalent au copier-coller, mais il est beaucoup plus rapide que le copier-coller manuel. On peut dire qu'il est terminé en un instant. Et si vous utilisez la touche de raccourci pour l'exécuter une fois, toutes les feuilles de calcul seront résumées une fois.
Que cela fonctionne ou non, vous le saurez une fois que vous l'aurez essayé. Si vous avez des questions sur l'utilisation de ce code, n'hésitez pas à me saluer ~~~~~
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!