2015-07-27 13 views
6

Szukałem tego od pewnego czasu i nie udało mi się.Używanie "komórek" z "zasięgiem"

Próbuję użyć zakresu z komendą komórek w języku VBA, a ostatni wiersz jest zmienny. Co więcej, nie otrzymuję kolejnych kolumn.

Muszę wybrać zakres S2:S9 i U2:U9 (jak już powiedziano, ostatni wiersz może być zmienny). Wiem, że to polecenie działa:

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

Ale muszę wybrać 2 różne kolumny, które nie są kolejne. Próbuję czegoś takiego, ale bez powodzenia:

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

Czy ktoś wie, jak to zrobić?

Odpowiedz

7

mógłby po prostu użyć tego:

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

Inną opcją jest użycie Union() Method w VBA.

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

Jeśli masz więcej zakresów, które chcesz dodać do związku, możesz kontynuować dodawanie zakresów do związku, jak poniżej. Jest to szczególnie przydatne, gdy dołączasz pętlę do dodawania zakresów do związku.

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

Jeśli chcesz trzymać się logiki użyciu Range i Cells spróbuj tego:

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

Trochę długo ale można zrobić swoją pracę logiczny.
Można również sprawdzić poniższe linki:

Powiązane problemy