VBA循环与一些工作表

我是一个初学者,我想在我的excel文件的所有工作表中做一个循环,除了第一个。 但是,下面的代码只适用于第二个。 你能解释我这个代码有什么问题吗?

非常感谢

Sub MobileTCalculation() 'MobileTCalculation Macro Dim i As Integer For i = 1 To 40 Worksheets(1 + 1).Select Range("A20").Select On Error Resume Next Next i End Sub 

如果你想跳过第一张纸,那么改变如下所示的循环。 如果工作簿中只有40张Worksheets(i + 1)将会出错;)

用这个

 Sub MobileTCalculation() Dim i As Integer For i = 2 To 40 Worksheets(i).Range("A20").Select Next i End Sub 

还有两件事。

1)使用On Error Resume Next是邪恶的;)仅在必要时使用它。

2)不要使用.SELECT它减慢你的代码。 而是直接执行操作。 例如

 Sub MobileTCalculation() Dim i As Integer For i = 2 To 40 With Worksheets(i).Range("A20") Debug.Print .Value End With Next i End Sub 

HTH

希德

你应该改变:

 Worksheets(1 + 1).Select 

所以它使用你的ivariables…你只是把1 + 1所以它总是评估为2

一个经典的错误:)