質問

The named range is SheetNames, on a worksheet named Consolidation, cell B3 to B101 and the array is Sheets(Array("Sheet1", "Sheet2")).Select:

Sub Insert_Formula()
    Dim ws As Worksheet
    Application.ScreenUpdating = False
    Sheets(Array("Sheet1", "Sheet2")).Select
    
    For Each ws In ActiveWindow.SelectedSheets
        ws.Range("F3:F50").Formula = "=SUMIFS(Jul!$K:$K,Jul!$H:$H,$C$1,Jul!$J:$J,$C3)"
    Next ws
  
    Application.ScreenUpdating = True 
End Sub
役に立ちましたか?

解決

Hopefully this answers your question. If you are looking to iterate through every sheet in your workbook, instead of explicitly calling out their names you can just use

Sub Insert_Formula() 

Application.ScreenUpdating = false

For Each ws In ActiveWorkbook.Sheets
    ws.Range("F3:F50").Formula = "=SUMIFS(Jul!$K:$K,Jul!$H:$H,$C$1,Jul!$J:$J,$C3)"
Next

Application.ScreenUpdating = True 

End Sub

Alternatively if you want to use the specific sheet name you specified with the worksheet names you can try this

Sub Insert_Formula()

    For Each cell In Range("sheetNames")
        Sheets(cell.Text).Range("F3:F50").Formula = "=SUMIFS(Jul!$K:$K,Jul!$H:$H,$C$1,Jul!$J:$J,$C3)"
    Next

End Sub
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top