循环遍历工作簿中的所有工作表
我想在工作簿中的所有工作表上重复此代码。循环遍历工作簿中的所有工作表
有时可能有1-2个工作表,有时50+。
Sub HoursTotal()
'
' HoursTotal Macro
'
Range("F2").Select
ActiveCell.FormulaR1C1 = "=SUM(C[-1])"
Range("F1").Select
ActiveCell.FormulaR1C1 = "Total Hours"
Range("G1").Select
End Sub
这应该这样做。
Sub HoursTotal()
Dim ws As Worksheet
For Each ws In Worksheets
ws.Range("F2").FormulaR1C1 = "=SUM(C[-1])"
ws.Range("F1").FormulaR1C1 = "Total Hours"
ws.Range("G1").Select 'I don't think you need this line but I included it anyways
Next
End Sub
您当前密码的简单的修改应该这样做:
Sub HoursTotal()
'
' HoursTotal Macro
'
Dim ws as Worksheet
For Each ws in Worksheets
ws.Range("F2").Select
ActiveCell.FormulaR1C1 = "=SUM(C[-1])"
ws.Range("F1").Select
ActiveCell.FormulaR1C1 = "Total Hours"
ws.Range("G1").Select
Next ws
End Sub
但这里是什么样子没有Select
的
Sub HoursTotal()
'
' HoursTotal Macro
'
Dim ws as Worksheet
For Each ws in Worksheets
ws.Range("F2").FormulaR1C1 = "=SUM(C[-1])"
ws.Range("F1").FormulaR1C1 = "Total Hours"
ws.Range("G1").Select
Next ws
End Sub
你错过了一个'Select'语句,在它传播之前快速挤压它!!!!!! – 2016-09-19 21:44:45
哈哈我想,因为它包含在原始代码中而没有采取任何行动,用户希望结束活动单元格为G1 – PartyHatPanda
这就是我的想法,但是......哦!他们太好了! +1思考OP的观点, – 2016-09-19 21:49:18
欢迎来到SO!为了帮助你的代码,尽量避免使用'.Select'。它会让你的代码运行得慢一点。你可以从[This Question]中找到更多关于它的信息(http://stackoverflow.com/questions/10714251/how-to-avoid-using-select-in-excel-vba-macros)。 – PartyHatPanda