2017-10-06 6 views
0

Ich versuche, ein VBA-Skript für den zusammenfassenden Bericht zu schreiben Ich habe mehrere Blätter im ersten Blatt Ich habe zusammenfassenden Bericht unter Berechnungen, die ich brauche in Schleife für mehrere BlätterWie man die Formel auf Zelle abhängig vom Wert des unterschiedlichen Blattes in vba anordnet

Sheets("Dashboard").Select 
Range("D5").Select 
Selection.Formula = "=COUNTIF(Sheet2!E:E,""Passed"")" 

wie oben ich habe mehrere Formeln zu tun, auf Zelle zu übernehmen und ich möchte nicht, die Formel für jedes Blatt schreiben Irgendwelche Vorschläge plz

Antwort

1

Hier ist, wie Sie Schleife durch alle Arbeitsblätter in einer Arbeitsmappe: (vermeiden Sie die Verwendung von Select)

Dim sh As Worksheet 
    For Each sh In ActiveWorkbook.Worksheets 
    If sh.Name <> "NameOfSheet" Then 
     sh.Range("D5").Formula = "=COUNTIF('" & sh.Name & "'!E:E,""Passed"")" 
    End If 
    Next 
+0

tatsächlich benötigen I Schleife in Formelblatt Wert zu "= COUNTIF (Sheet2 E: E", "Bestanden" ")" z.B. Blätter ("Dashboard") Wählen Sie Bereich ("D5"). Wählen Sie Selection.Formula = "= COUNTIF (Sheet2! E: E," "Bestanden" ")" Sheets ("Dashboard"). Wählen Range ("D5") Wählen Sie Selection.Formula = "= COUNTIF (Sheet3! E: E," "Bestanden" ")" – user1763769

+0

Aktualisiert, um den Blattnamen als Variable zu verwenden. – braX

+2

Es gibt selten eine Notwendigkeit, 'ActiveWorkbook' zu verwenden, und das kann katastrophale Auswirkungen auf Code wie diesen haben. Ich würde dringend empfehlen, 'ThisWorkbook' in Zukunft zu verwenden oder sich direkt auf eine bestimmte Arbeitsmappe zu beziehen. – CallumDA

Verwandte Themen