Tøm innholdet i celler i VBA ved hjelp av kolonnereferanse
Jeg prøver å få et stykke kode til å tømme dataene i noen celler ved hjelp av kolonnereferansene. Jeg bruker følgende kode:
Worksheets(sheetname).Range(.Cells(2, LastColData), .Cells(LastRowData, LastColData)).ClearContents
For å gjøre dette får jeg imidlertid en feil i den første .Cells-seksjonen, hva skyldes dette?
12
3
Du kan få tilgang til hele kolonnen som et område ved hjelp av objektet
Worksheet.Columns
.Noe sånt som
bør tømme innholdet i A-kolonnen
Det finnes også objektet
Worksheet.Rows
hvis du trenger å gjøre noe lignende for rader.Feilen du får, skyldes sannsynligvis en manglende with-blokk.
Du kan lese om with-blokker her: Microsoft Hjelp
Som Gary's Student nevnte, må du fjerne prikken før
Cells
for å få koden til å fungere slik du opprinnelig skrev den. Jeg kan ikke være sikker, siden du bare inkluderte én kodelinje, men feilen du fikk da du fjernet prikkene, kan ha noe å gjøre med hvordan du definerte variablene dine.Jeg kjørte kodelinjen din med variablene definert som heltall, og det fungerte:
Jeg tror ikke at en
With
-setning er passende for kodelinjen du delte, men hvis du skulle bruke en, villeWith
stå i starten av linjen som definerer objektet du manipulerer. Her er koden din omskrevet med en unødvendigWith
-setning:With
-setninger er laget for at du skal slippe å skrive kode på nytt og for å gjøre koden enklere å lese. Det er nyttig og hensiktsmessig hvis du gjør mer enn én ting med et objekt. Hvis du for eksempel også vil gjøre kolonnen rød og legge til en tykk svart kant, kan du bruke enWith
-setning som denne:Ellers må du deklarere rekkevidden for hver handling eller egenskap, som dette:
Jeg håper dette gir deg en forståelse av hvorfor Gary's Student mente at kompilatoren kanskje forventet en
With
(selv om den var upassende), og hvordan og når enWith
kan være nyttig i koden din.Du trenger en With-setning før dette. Eller gjør .Cells om til Cells.