Comment fusionner plusieurs objets Range, dans l'un, pour l'utiliser comme source du Graphique

Je suis en train de faire un tableau avec plusieurs colonnes comme source de la zone.
En fait, je cherche à sélectionner des colonnes, où je me passer de certaines colonnes, et de les fusionner en une gamme. J'ai de l'installation d'une boucle, dans laquelle je crée une fourchette et ajouter l'adresse d'une chaîne de caractères, et les sépare par une virgule. Je suis sûr que ce est la façon dont Excel veut formaté.

MAIS, je n'arrive pas à créer une nouvelle gamme de cette chaîne.

J'espère que quelqu'un ici peut m'aider.

Je voudrais bien éviter, d'avoir à copier les colonnes d'une nouvelle feuille, et il suffit de marquer tous comme un éventail.

J'ai le code suivant, pour ce qui combiné gamme:

'Loops for each number of sections
For Z = 1 To Sheet1.txtNoSections

    'Get gauge to use
    Section = Workbooks(ThisWorkbook.Name).Worksheets(1).Cells(26 + Z, 6).Value
    'Sets varibel for distance from root
    Dist = Workbooks(ThisWorkbook.Name).Worksheets(1).Cells(26 + Z, 3).Value
    'Get range to use
    Set ChartRange = ActiveSheet.Range(ActiveCell, ActiveCell.Offset(rc, Section))
    RangeString = RangeString & ChartRange.AddressLocal
    If Z <> 1 Then
        RangeString = RangeString & ","
    End If

Next Z

J'ai ensuite essayé d'obtenir une nouvelle gamme avec quelque chose comme ça, mais pas de chance.

Dim ActualRange As Range
Set ActualRange = ActiveSheet.Range(RangeString)

Lors de l'impression de la RangeString, il ressemble à ceci:
$S$2$V$6181$S$2:$X$6181,$S$2:$Z$6181,$S$2:$AB$6181,$S$2:$AD$6181,$S$2:$AF$6181,$S$2:$AH$6181,$S$2:$AJ$6181,$S$2:$AL$6181,$S$2:$AN$6181,$S$2:$AP$6181,$S$2:$AR$6181,$S$2:$AT$6181,$S$2:$AV$6181,$S$2:$AX$6181,$S$2:$AZ$6181,$S$2:$BB$6181,$S$2:$BD$6181,$S$2:$BF$6181,$S$2:$BH$6181,$S$2:$BJ$6181,$S$2:$BL$6181,$S$2:$BN$6181,$S$2:$BP$6181

Semble être la même union ne.

Vous auriez porbbably mieux d'utiliser le Union méthode de concaténation de gamme (qui ne fonctionnera pas si votre gamme se termine par une virgule ,)
Pouvez-vous poster ce RangeString ressemble après vous exécutez le code? Vous pouvez mettre un Debug.Print RangeString après Next Z et vérifier la valeur. edit: Bon point Jmax 🙂
Bien sûr, ma chaîne est terminée sur une virgule. Je l'ai changé, mais il ne parvient toujours pas quand j'essaie de définir la plage.
Je crois que c'est ce que vous essayez? RangeString devrait ressembler à ceci "S2:S6181,V2:V6181,X2:X6181,Z2:Z14,AB1:AB6181,........,BP2:BP6181"
Votre RangeString manque une première virgule pour délimiter la première Plage. Vous vraiment doit utiliser les fonctions standard telles que l'Union

OriginalL'auteur Nicolai | 2012-03-28