2012-08-06 34 views
15

Tôi có một biến X dài có chứa một số. Hãy nói là 415.Làm cách nào để xóa mọi thứ bên dưới hàng X trong VBA/Excel?

Làm cách nào để xóa mọi thứ trên trang tính từ Hàng 415 trở xuống?

Tôi muốn đảm bảo bảng tính của mình được sạch sẽ trong Hàng 415 và bất kỳ thứ gì khác có thể ở dưới nó.

Làm cách nào để thực hiện việc này? Cảm ơn.

Trả lời

32

Nghe có vẻ như một cái gì đó giống như dưới đây sẽ phù hợp với nhu cầu của bạn:

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

đâu X là một biến = số hàng (415)

+0

Thực tiễn tốt nhất để thực thi mã này là gì? – Dror

+0

Đồng ý. Tôi dán mã này ở đâu để chạy? –

+0

bạn có thể sử dụng macro, vba –

11

lựa chọn khác là Sheet1.Rows(x & ":" & Sheet1.Rows.Count).ClearContents (hoặc .Clear). Lý do bạn có thể muốn sử dụng phương thức này thay vì .Delete là do bất kỳ ô nào có phụ thuộc trong phạm vi đã xóa (ví dụ: công thức tham chiếu đến các ô đó, ngay cả khi trống) sẽ kết thúc hiển thị #REF. Phương thức này sẽ bảo toàn các tham chiếu công thức tới các ô đã xóa.

1

Chức năng này sẽ xóa dữ liệu tờ bắt đầu từ hàng quy định và cột:

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

Điều này đã giúp tôi. Tùy chọn cuối col và/hoặc hàng sẽ thậm chí còn mát hơn. ;) –

-1

Bất kỳ Liên quan đến 'Row' nên sử dụng 'dài' không 'nguyên' khác nó sẽ tràn nếu bảng tính có rất nhiều Dữ liệu.

Các vấn đề liên quan