2012-08-06 10 views
15

Mam długą zmienną X, która zawiera liczbę. Powiedz, że to 415.Jak usunąć wszystko poniżej wiersza X w VBA/Excel?

Jak usunąć wszystko z arkusza roboczego z wiersza 415 i poniżej?

Chcę upewnić się, że mój arkusz kalkulacyjny jest czysty w wierszu 415 i wszystkim innym, co może znajdować się pod nim.

Jak to zrobić? Dzięki.

Odpowiedz

32

To brzmi jak coś jak poniżej będzie odpowiadał naszym potrzebom:

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

Gdzie X jest zmienna = liczba wierszy (415)

+0

Jaka jest najlepsza praktyka do wykonania tego kodu? – Dror

+0

Uzgodnione. Gdzie wkleić ten kod, aby go uruchomić? –

+0

możesz użyć makra, vba –

11

Inną opcją jest Sheet1.Rows(x & ":" & Sheet1.Rows.Count).ClearContents (lub .Clear). Powodem, dla którego możesz chcieć użyć tej metody zamiast .Delete, jest to, że każda komórka z zależnościami w usuniętym zakresie (na przykład formuły odnoszące się do tych komórek, nawet jeśli puste) zakończy się wyświetleniem #REF. Ta metoda zachowa odwołania do formuły do ​​usuniętych komórek.

1

Funkcja ta usunąć dane arkusza wychodząc z określonego rzędu i kolumny:

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

Pomogło mi to. Opcjonalny koniec kolumny i/lub rząd będzie jeszcze chłodniejszy. ;) –

-1

wszelkie odniesienia do „Rz” należy użyć „długiej” nie „całkowita” innego nie przepełnić, jeśli arkusz ma wiele danych.

Powiązane problemy