【发布时间】:2020-10-20 23:38:52
【问题描述】:
我有一个工作簿,用作填写数据的模板。数据被清除,工作簿被重新使用。
工作簿有多个工作表,每个工作表需要清除的范围不同。
假设我要清除 A10:Y50 范围内的数据,我将值“开始”放在单元格 Z10 中,作为清除数据的起点。 “开始”位于每个工作表的不同单元格中。
该代码根据位于第一个工作表中的“开始”清除数据,而不是针对每个工作表独立。
Sub TestReset()
Dim sht As Worksheet
For Each sht In ActiveWorkbook.Sheets
If sht.Name <> "Sheet1" And sht.Name <> "Sheet2" Then '
Dim iRow As Long, iMax As Long
iRow = Cells.Find(What:="start", LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False).Row
iMax = Cells(iRow, "A").End(xlDown).Row
sht.Range("A" & iRow & ":AY" & iMax).ClearContents
End If
Next sht
End Sub
【问题讨论】:
-
Cells.Find和Cells(iRow, "A")查看活动工作表。您希望sht.Cells.Find和sht.Cells(iRow, "A")查看工作表sht。sht.Range是正确的。