2012-08-06 9 views
15

Ho una variabile X lunga che contiene un numero. Supponiamo che sia 415.Come si elimina tutto sotto la riga X in VBA/Excel?

Come si elimina tutto sul foglio di lavoro dalla riga 415 e sotto?

Voglio assicurarmi che il mio foglio di calcolo sia pulito nella Riga 415 e qualsiasi altra cosa che potrebbe trovarsi al di sotto di esso.

Come posso fare? Grazie.

risposta

32

suona come qualcosa di simile al di sotto soddisfa le tue esigenze:

With Sheets("Sheet1") 
    .Rows(X & ":" & .Rows.Count).Delete 
End With 

Dove X è una variabile che = il numero di riga (415)

+0

Qual è la procedura migliore per eseguire questo codice? – Dror

+0

concordato. Dove incollo questo codice per eseguirlo? –

+0

è possibile utilizzare la macro, vba –

11

Un'altra opzione è Sheet1.Rows(x & ":" & Sheet1.Rows.Count).ClearContents (o .Clear). La ragione per cui potresti voler utilizzare questo metodo invece di .Delete è perché tutte le celle con dipendenze nell'intervallo cancellato (ad esempio formule che si riferiscono a quelle celle, anche se vuote) finiscono per mostrare #REF. Questo metodo manterrà i riferimenti di formula alle celle cancellate.

1

Questa funzione cancellare i dati del foglio a partire dalla riga e colonna specificata:

Sub ClearWKSData(wksCur As Worksheet, iFirstRow As Integer, iFirstCol As Integer) 

Dim iUsedCols As Integer 
Dim iUsedRows As Integer 

iUsedRows = wksCur.UsedRange.Row + wksCur.UsedRange.Rows.Count - 1 
iUsedCols = wksCur.UsedRange.Column + wksCur.UsedRange.Columns.Count - 1 

If iUsedRows > iFirstRow And iUsedCols > iFirstCol Then 
    wksCur.Range(wksCur.Cells(iFirstRow, iFirstCol), wksCur.Cells(iUsedRows, iUsedCols)).Clear 
End If 

End Sub 
+0

Questo mi ha aiutato. Colonnina e/o riga opzionali potrebbero essere ancora più freschi. ;) –

-1

Qualsiasi riferimento a 'fila' dovrebbe utilizzare non 'integer' 'lungo' altrimenti sarà overflow se il foglio ha molto di dati.

Problemi correlati