2015-07-27 18 views
6

Ho cercato questo per un po 'di tempo e non ho avuto successo.Utilizzo di "celle" con "intervallo"

Sto provando a utilizzare l'intervallo con il comando celle in VBA e l'ultima riga è variabile. Inoltre, non ricevo colonne consecutive.

Devo selezionare l'intervallo S2:S9 e U2:U9 (come già detto, l'ultima riga può essere variabile). So che questo comando funziona:

Range(Cells(2, 19), Cells(NumberofRows, 19)).select 

Ma ho bisogno di selezionare 2 colonne diverse che non sono consecutive. Sto provando qualcosa del genere ma non ho avuto successo:

Range(Cells(2, 19), Cells(NumLinhas, 19);(Cells(2, 21), Cells(NumLinhas, 21)).Select 

Qualcuno sa come farlo?

risposta

7

si potrebbe utilizzare questo:

Range("S2:S" & intLastRow & ",U2:U" & intLastRow).Select 
8

Un'altra opzione è quella di utilizzare il Union() Method all'interno di VBA.

Union(Range(Cells(2, 19), Cells(NumLinhas, 19)), _ 
    Range(Cells(2, 21), Cells(NumLinhas, 21))).Select 

Se si dispone di più campi che si desidera aggiungere alla unione, è possibile continuare ad aggiungere gamme al sindacato come qui di seguito. Ciò è particolarmente utile quando si incorpora un loop per aggiungere intervalli all'unione.

Dim rngUnion As Range 

Set rngUnion = Union(Range("D1:D2"), Range("H1:H2")) 
Set rngUnion = Union(rngUnion, Range("B1:B2")) 
Set rngUnion = Union(rngUnion, Range("F1:F2")) 
rngUnion.Select 
1

Se si vuole attaccare con la logica utilizzando Range e Cells provare questo:

Range(Range(Cells(2, 19), Cells(NumLinhas, 19)).Address & "," & _ 
     Range(Cells(2, 21), Cells(NumLinhas, 21)).Address).Select 

un po 'lungo, ma farete il vostro lavoro di logica.
È inoltre possibile controllare i seguenti link:

Problemi correlati