excel vba如何让所有工作簿表都运行代码(跳过某个)?求修改
初学者写了一个vba代码,想在每一个工作簿都运行,试了一下勉强成功了,可是没法跳过开头两个总结类工作表,网上也找了一些方法可是试了一下都用不上,求指导,非常感谢。会再加分...
初学者写了一个vba代码,想在每一个工作簿都运行,试了一下勉强成功了,可是没法跳过开头两个总结类工作表,网上也找了一些方法可是试了一下都用不上,求指导,非常感谢。会再加分的。(假设第一个工作簿名为“工作簿一”,第二个名为“工作簿二”)
Sub WorksheetLoop2()
Dim Current As Worksheet
Dim Row0 As Long, Row1 As Long
For Each Current In Worksheets
With Current
Row0 = .Cells(1048576, 1).End(xlUp).Row
.UsedRange.RemoveDuplicates Columns:=Array(8, 9, 10), Header:=xlYe
Row1 = .Cells(1048576, 1).End(xlUp).Row
End With
MsgBox Current.Name & Row0 - Row1, vbInformation, "Information"
Next
End Sub 展开
Sub WorksheetLoop2()
Dim Current As Worksheet
Dim Row0 As Long, Row1 As Long
For Each Current In Worksheets
With Current
Row0 = .Cells(1048576, 1).End(xlUp).Row
.UsedRange.RemoveDuplicates Columns:=Array(8, 9, 10), Header:=xlYe
Row1 = .Cells(1048576, 1).End(xlUp).Row
End With
MsgBox Current.Name & Row0 - Row1, vbInformation, "Information"
Next
End Sub 展开
1个回答
展开全部
代码加个条件就好了
Sub WorksheetLoop2()
Dim Current As Worksheet
Dim Row0 As Long, Row1 As Long
For Each Current In Worksheets
if Current.index>2 then '如果工作表 在第2个工作表之后(按显示顺序)
With Current
Row0 = .Cells(1048576, 1).End(xlUp).Row
.UsedRange.RemoveDuplicates Columns:=Array(8, 9, 10), Header:=xlYe
Row1 = .Cells(1048576, 1).End(xlUp).Row
End With
MsgBox Current.Name & Row0 - Row1, vbInformation, "Information"
end if
Next
End Sub
更多追问追答
追问
真的很感谢!真的可以用!真的帮了大忙了我纠结了整个礼拜
我用了很多if then的方法一直说编译错误,next 没有 for,不知道为什么。
只是加了这行之后速度慢了好多,一分钟处理一张工作表……可能因为本来数据库比较大。
(请问一下有没有可能缩短处理速度的方法?对不起!!不应该要求那么多的QAQ)
追答
要我都不会用这个功能去做
直接 一个字典 解决,微秒 处理
你的 H:J 列 是单独的? 就是 要去除 每个表 H:J 列的重复项?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询