我想设置一个宏来从一组可能动态变化的数据表中的范围中删除数据。例如,电子表格当前包含16个数据表,列为L2_1,L2_2,L2_3 ..... L2_16。如果表中的表数发生变化,我希望宏足够灵活,以便能够扩展或收缩。我还想删除表格中的[L2编号]范围(这是所有表格的相同范围名称)。
还有另一种类型的表格也在表格中递增(" L3L2_1,L3L2_2 ...... L3L2_16)。我希望宏忽略这些表。以下是我的开始,但我收到的是" 1004"清除内容行的错误。
Sub Summary_II_Clear_Contents()
' Clears Summary II Tab
Dim tbl As ListObject
i = 1
For Each tbl In Sheets("Summary II").ListObjects
If tbl.Name Like "L2_" & i Then
Sheets("Summary II").Range("L2_&i&[L2 Number]").ClearContents
i = i + 1
End If
Next tbl
End Sub
感谢您的帮助!
答案 0 :(得分:0)
我认为您只需修复 If语句
此外,您需要确定要使用的 For Loop 构造。
如果您决定使用 For Each 构造:
For Each tbl In Sheets("Summary II").ListObjects
If InStr(tbl.Name, "L2_") = 1 Then
Sheets("Summary II").Range(tbl.Name & "[L2 Number]").ClearContents
End If
Next tbl
现在,您还可以使用经典的 For Next 构造:
With Sheets("Summary II")
For i = 1 To .ListObjects.Count
If InStr(.ListObjects(i).Name, "L2_") = 1 Then
.Range(.ListObjects(i).Name & "[L2 Number]").ClearContents
End If
Next tbl
End With
请注意,我们合并了 With Clause ,只是为了让它看起来干净。 HTH。