Stepping gjennom en ikke-sammenhengende celle

April 27  by Eliza

Stephe må utvikle en makro som skal utføre en operasjon basert på cellene som en bruker velger før du kjører makroen. Hun vet hvordan du gjør dette hvis brukeren velger et område med celler, men hun vet ikke hvordan de skal gå gjennom cellene i et utvalg hvis brukeren velger en ikke-sammenhengende område med celler.

Når det gjelder VBA, det er svært liten forskjell mellom et sammenhengende utvalg og en ikke-sammenhengende valg. Excel gir deg tilgang til hver av dem det samme. Betrakt følgende kode:

Dim c Som Range

For hver c I Selection
'Gjør noe her
MsgBox c.Address & vbTab & c.Value
Neste c

I dette tilfelle cellene i det valgte området, gikk gjennom, en av gangen, ved å bruke For ... Neste sløyfe. Innenfor sløyfen c variabel representerer en individuell celle og kan brukes i referanser, som vist.

Hvis en eller annen grunn, vil du få tilgang til hver sammenhengende område innenfor valg, kan du gjøre det ved å spesifikt ta opp Områder gruppen, som vist i dette tekstutdraget:

Dimme en Som Range
Dim c Som Range

For hver a I Selection.Areas
«Nå hver en refererer til et sammenhengende område
"Gjør noe her med områder, om ønskelig
For Hver c I a.Cells
'Nå hver c refererer til en celle i området
"Gjør noe her
MsgBox c.Address & vbTab & c.Value
Neste c
Neste en

Du bør også være oppmerksom på at hvis området du vil ha tilgang til (sammenhengende eller ikke-sammenhengende) har blitt navngitt i Excel, kan du også få tilgang til bare de cellene i den navngitte området. Bare bytt ut ordet "Selection" i hver av disse eksemplene med navnet på området, på denne måten:

Dim c Som Range

For Hver c I Range ("MyNamedRange")
'Gjør noe her
MsgBox c.Address & vbTab & c.Value
Neste c

ExcelTips er din kilde for kostnadseffektiv Microsoft Excel trening. Dette tipset (8701) gjelder for Microsoft Excel 97, 2000, 2002, og 2003. Du kan finne en versjon av dette tipset for Båndet av Excel (Excel 2007 og senere) her: Stepping gjennom en ikke-sammenhengende celleområde.