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
展开
 我来答
ExcelPower
2018-01-12 · 专业Excel公式图表数据分析VBA
ExcelPower
采纳数:4495 获赞数:11863

向TA提问 私信TA
展开全部

代码加个条件就好了

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 列的重复项?
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式