Excel VBA - la façon la plus efficace de copier plusieurs cellules d'un fichier à un autre?
actuellement, je suis struggeling avec les éléments suivants:
J'ai deux fichiers Excel. L'un des fichiers contient beaucoup de données, l'autre est utilisée pour l'évaluer.
Maintenant, j'ai besoin de manière efficace copier les données de la source vers la cible classeur. La source datapattern ressemble à la suivante:
x A B C D E F G H I
1 Oct bla bla bla bla bla bla bla bla
2 75 66
3 Nov bla bla IMT Frm bla bla IMT Frm
Où bla représente inintéressant de données, Une Colonne représente le Mois (important) et de la GTI est important de données, qui est la cause de pourquoi je fais cela. Aussi, Frm signifie que la cellule contient une formule, plutôt qu'une valeur et doit être préservée/restauré.
En outre, la cellule de mise en forme du fichier cible doit être préservée (peut être réalisé avec des .PasteSpecial).
La Cible Classeur ne regarder exactement la même, en omettant la moitié emty ligne "2".
Chaque ligne a environ 10 précieuse entrées. Comment pourrais-je, le plus efficace, d'être en mesure de copier les données dans le classeur deuxième?
S'il vous plaît laissez-moi savoir si il y a plus d'informations que je pouvais offrir.
Je vous remercie pour votre temps!
EDIT: exemple de capture d'écran
Clarification: La capture d'écran montre la feuille source. L'information importante est celle qui est sélectionnée dans la ss. La feuille passe sur la droite comme ceci (jusqu'BF). J'ai besoin de copier tous les sixième entrée. La cible de la feuille ressemble exactement la même (en omettant la moitié vide de la rangée du milieu), sauf pour les informations nécessaires qui, dans la source, est une formule, mais elle doit être la valeur de la cible.
Merci beaucoup de m'aider!
Vous devez vous connecter pour publier un commentaire.
Voici un exemple de code qui vous va dans la bonne direction:
Essayez ceci:
Set wb2 = Workbooks.Open vFile
est plus court et plus sûrdonc, après un peu plus de recherche, je pense avoir trouvé une réponse.
S'il vous plaît, de corriger ou d'améliorer moi si mon approche est off/mauvais/pas idéal.
Je suis l'aide d'une boucle et puis juste assingin la valeur... je me demande, à venir à partir de C++, si c'est le "plus court" façon de faire? ressemble à un ballonnement de boucle for pour moi...
Merci à tous pour votre temps, vos commentaires et conseils!
Range("A2").Resize(300,20).Value
retourne un tableau de300
x20
valeurs à partir de la cellule"A2"
. Vous pouvez affecter un tableau à une plage dans un mode similaire.Range("B4:C9,E4:D9")
. Sinon, vous pouvez le faire en VBA portées par le tableau directement. Poster une autre question afin d'obtenir une réponse complète.