vba 循环遍历工作簿中的所有工作表

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/39581487/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-09-12 11:18:45  来源:igfitidea点击:

Loop through all worksheets in workbook

excelvbaexcel-vba

提问by Alex Ross

I want to repeat this code on all the worksheets in a workbook.

我想在工作簿中的所有工作表上重复此代码。

There may sometimes be 1-2 worksheets sometimes 50+.

有时可能有 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

回答by BerticusMaximus

This should do it.

这应该这样做。

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

回答by PartyHatPanda

Simple modification of your current code should do it:

对当前代码进行简单修改即可:

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

But here's what it looks like without the Select's

但这里是没有Select's 的样子

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

回答by abe973t

You need to activate the worksheet so that excel can make changes to it.

您需要激活工作表,以便 excel 可以对其进行更改。

`Sub HoursTotal() Dim ws As Worksheet

`Sub HoursTotal() Dim ws As Worksheet

For Each ws In Worksheets
    ws.Activate
    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`

结束子`