Copie de plusieurs plages avec VBA

Je cherche à copier plusieurs plages à l'aide de VBA Excel. Je comprends que, dans le but de sélectionner plusieurs plages, d'une syntaxe similaire à celle ci-dessous est utilisé:

Range("A1:B4000, F1:F4000").Select

Cela fonctionne bien dans sélection la gamme appropriée. Toutefois, les éléments suivants:

Range("A1:B4000, F1:F4000").Copy

...seulement des copies de l'A1:B4000 gamme. C'est le premier problème, je suis confronté à.

Deuxièmement, je voudrais dynamiquement copier les données de la ligne du bas, ce qui n'est pas nécessairement la ligne #4000. Si la sélection d'une plage unique, la syntaxe est comme suit:

Range("A1", Range("B1").End(xlDown)).Copy

Le code ci-dessus avec succès des copies de tout, de A1 vers le bas de la colonne B. Je ne trouve pas sur le net expliquant comment faire pour faire une sélection multiple.

Ce que je suis essentiellement d'essayer de faire est de copier A1:B(en bas) et F1:F(en bas), mais les deux points qui précèdent sont m'en empêche. Je suppose que c'est un problème de syntaxe..?

  • Pouvez-vous juste de faire une boucle et de copier et coller deux fois (donc, de copier et de coller le premier de la gamme, puis copiez et collez la deuxième plage)? Il semble que, depuis que vous êtes à l'aide de VBA, vous êtes ajout de complexité en essayant de tout faire en une seule étape.
  • Yep, je pouvais le faire - c'est ma solution actuelle. Je déteste juste les solutions de contournement 😛
  • J'ai simplement utilisé votre code et il a bien fonctionné pour moi (elle a copié les trois colonnes et collées côte à côte ci-dessous). Quelle version d'Excel êtes-vous?
  • Jetez un oeil à Range("A1").CurrentRegion. C'est la voie la plus commode pour les plages dynamiques, si vos données est conforme aux exigences.
InformationsquelleAutor CaptainProg | 2012-09-17