具有空行的多个工作表中的数据

时间:2018-03-23 09:09:10

标签: vba excel-vba excel

你好,我的工作簿里面有多张表。我创建了宏,删除这些工作表中的两列数据(没有标题)。我使用.Find查找标头MEASURED VALUE,因此宏只会删除找到的标头下方的数据。这是我的代码:

Sub Macro1()

Dim ws As Worksheet
Dim rng As Range
Dim r As Integer
Dim c As Integer



For Each ws In ThisWorkbook.Worksheets
Debug.Print ws.Name

 r = ws.Range("A1").CurrentRegion.Find(what:="MEASURED VALUE", lookat:=xlWhole).Row
 c = ws.Range("A1").CurrentRegion.Find(what:="MEASURED VALUE", lookat:=xlWhole).Column

Range(ws.Cells(2, c), ws.Cells(r, c).End(xlDown)).ClearContents

Next ws

End Sub

此代码可用于删除找到的列和每张表中的数据。但是有些行可能是空的。我的问题是如何使代码删除所有数据,而不仅仅是空行上方的数据。谢谢。

1 个答案:

答案 0 :(得分:3)

试试这个:

Range(ws.Cells(2, c), ws.Cells(r, c).End(xlDown)).ClearContents

而不是:

ws.Rows.Count

您的方法可以这样形象化:

  

一直向下看,直到第一个空白单元格。

另一方面,我的方法就像:

  

转到列的底部(使用ID实现)并向上移至第一个非空白单元格。