In questo articolo, creeremo una macro per eliminare i dati delle date precedenti. Questa macro controlla i dati, conserva i dati di oggi ed elimina tutti i dati dalle date precedenti.

I dati grezzi in questo esempio sono la data, il nome dell’agente e le vendite del singolo agente in quella data particolare.

ArrowRawData

Per eseguire la macro, fare clic sul pulsante nella scheda “Principale” o si può anche eseguirla premendo i tasti di scelta rapida Alt + F8.

La macro eliminerà tutti i record con date precedenti. Poiché eseguiamo questa macro il 14 dicembre 2016, l’output rifletterà i record solo per quella data.

ArrowAfterRunningMacro

[_GoBack] # Spiegazione logica In questo esempio, abbiamo creato la macro “RemovePreviousData”. Questa macro utilizza il ciclo FOR inverso, significa che il ciclo viene eseguito nella direzione opposta. Il ciclo inizia dall’ultima riga e si sposta verso la riga superiore.

Il motivo per utilizzare il ciclo inverso è che se avessimo usato il normale ciclo FOR, dopo ogni cancellazione di riga, i record presenti nei dati si sarebbero spostati verso l’alto, con conseguente cambiamento di posizionamento con ogni cancellazione di riga. Quindi, per contrastare ciò, abbiamo utilizzato il ciclo inverso.

Abbiamo usato l’istruzione Step insieme al ciclo FOR per il ciclo nella direzione opposta. Il ciclo FOR inizia dall’ultima riga e prosegue verso l’11 ^ a ^ riga.

Segui sotto per il codice

Option Explicit

Sub RemovePreviousData()

Dim Counter, LastRow As Integer

'Finding the row number of last row

LastRow = ActiveSheet.Range("A1").SpecialCells(xlLastCell).Row

'Looping from last row to 11th row

For Counter = LastRow To 11 Step -1

If Cells(Counter, 1).Value < Date Then

'Deleting the row

Rows(Counter).Delete

End If

Next Counter

End Sub

Se ti è piaciuto questo blog, condividilo con i tuoi amici su Facebook e Facebook.

Ci piacerebbe sentire la tua opinione, facci sapere come possiamo migliorare il nostro lavoro e renderlo migliore per te. Scrivici a [email protected]