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
所以它使用你的i
variables…你只是把1 + 1
所以它总是评估为2
一个经典的错误:)