因此,我试图格式化所有工作表除了“名称”表。我想出了下面似乎不能循环和检测工作表“名称”。它将尝试格式化“名称”说,工作表是活动的,或者它将只适用于格式化一个单一的其他工作表时,工作表是活动的
Dim ws As Worksheet
For Each ws In ThisWorkbook.Worksheets
If ws.Name <> "Names" Then
Rows("1:1").Select
Selection.AutoFilter
ActiveSheet.Range("$A$1:$Q$19").AutoFilter Field:=4, Criteria1:="="
Rows("2:2").Select
Range(Selection, Selection.End(xlToRight)).Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Delete Shift:=xlUp
ActiveSheet.Range("$A$1:$Q$16").AutoFilter Field:=4
Columns("G:G").Select
Range(Selection, Selection.End(xlToRight)).Select
Selection.Delete Shift:=xlToLeft
Range("J15").Select
End If
Next ws
我试过完全重写代码,但同样的问题仍然存在
1条答案
按热度按时间sbdsn5lh1#
除了删除
Activesheet
之外,重写以避免.select
,并且可能考虑Criteria1:="="
的替代方案(如已经提到的);考虑使用
With
语句明确地将每个操作连接到当前工作表。让我知道这是否适合你。它适合我...但我不是100%肯定的格式将匹配你所做的。我重写了它没有
.select
或.activate
,但有时很难说不看数据。