Ich habe eine Arbeitsmappe, die Arbeitsblätter mit dem Text "Vorteile" im Blattnamen enthält. Beispielsweise; MEDICALBenefits oder DENTALBenefits. Es wird immer mindestens eins geben, aber es könnte mehrere geben.Neues Arbeitsblatt erstellen
Ich versuche, ein Makro zu schreiben, die das Arbeitsblatt (n) mit dem Text „Leistungen“ in der Blattnamen und mindestens eine Instanz des Wortes TRUE in Reihe finden 40.
Wenn diese beiden Kriterien werden erfüllt, dann muss ich ein neues Arbeitsblatt erstellen, das den gleichen Arbeitsblattnamen verwendet, aber den Text "Vorteile" durch den Text "Final" ersetzt, mit anderen Worten; Wenn das Arbeitsblatt MEDICALbenefits TRUE in einer oder mehreren Zellen in Zeile 40 hat, wird ein neues Blatt MEDICALFinal erstellt.
Wenn das Arbeitsblatt DENTALBenefits TRUE in einer oder mehreren Zellen in Zeile 40 hat, wird ein neues Blatt mit dem Namen DENTALFinal erstellt.
Ich brauche es dann durchlaufen alle Blätter auf der Suche nach "Vorteile" im Namen und TRUE in Zeile 40 und erstellen Sie ein neues Blatt.
Dies ist der Code, den ich bisher habe, aber Hilfe bei der Benennung der neuen Blätter.
Jordan
'Look for worksheet names *benefits* with checkbox(s) = true
Sub CreateFinalWorksheet()
Dim sh As Worksheet
Dim iVal As Integer
Application.ScreenUpdating = False
For Each sh In ActiveWorkbook.Sheets
iVal = Application.WorksheetFunction.CountIf(Range("40:40"), "TRUE")
If (LCase$(sh.Name) Like "*benefits*") And (iVal > 0) Then Call AddWorksheet
Next sh
Application.ScreenUpdating = True
End Sub
'Called from CreateFinalWorksheet.
'Add worksheet with same sheet name replacing *benefits* with *final*
Sub AddWorksheet()
Dim sh As Worksheet
With ThisWorkbook
Set ws = .Sheets.Add(After:=.Sheets(.Sheets.Count))
ws.Name = "MedicalFinal"
End With
End Sub
Ich habe beide Vorschläge ausprobiert und beide erstellt ein neues Blatt MEDICALFinal, aber nicht zum nächsten Blatt DENTALBenefits, um das nächste neue Blatt zu erstellen DENTALFinal. Ich dachte nach dem Aufruf des Subs würde es zum ersten Makro zurückkehren und den Rest der Blätter durchlaufen. Ich bin sehr neu in VBA und bin mir nicht sicher, wie ich die erforderlichen Änderungen vornehmen kann. – JordanCA57
@ JordanCA57, siehe bearbeitete Antwort. Wenn es Ihre Frage löst, markieren Sie es bitte als akzeptiert, indem Sie auf das Häkchen neben der Antwort klicken, um es von ausgegraut auf ausgefüllt umzuschalten. Vielen Dank – user3598756
Ich musste nur die gleichen zu großen als ändern. Das verstehe ich. Den Rest werde ich gehen und es herausfinden. Dies ist sehr hilfreich beim Lernen. – JordanCA57