Ich habe ein Makro geschrieben, das auf jedem Arbeitsblatt ein Add-In ausführen soll. Das Add-In ist ein Sage-spezifisches Add-In. Ich bin sicher, dass die Sendkeys mit allen von mir eingegebenen Sendkeys funktionieren sollten. Es führt jedoch meinen Test „Text hinzufügen“ auf allen Blättern aus, geht zurück zum ursprünglichen aktiven Blatt und führt das Add-In dann so oft aus, wie die Anzahl der Blätter beträgt – alle auf dem aktiven Blatt. Ich muss auch etwas hinzufügen, damit die ausgeblendeten Arbeitsblätter übersprungen werden …? Bitte helfen Sie.
Sub CountSheets()
Dim ws As Worksheet
Dim starting_ws As Worksheet
Set starting_ws = ActiveSheet 'remember which worksheet is active in the beginning
For Each ws In ThisWorkbook.Worksheets
ws.Activate
Application.SendKeys "%XRV%O", True
Application.Wait (Now + #12:00:01 AM#)
ws.Cells(1, 1) = "Created by Yo Castle 7 "
Application.Wait (Now + #12:00:01 AM#)
Next
starting_ws.Activate 'activate the worksheet that was originally active
End Sub
Antwort1
Um das Makro nur auf den sichtbaren Blättern laufen zu lassen, können Sie einIF
direkt nachdem Sie Ihre Schleife gestartet haben. Dadurch wird geprüft, ob dieVisible
-Eigenschaft ist „true“, andernfalls fahren Sie mit der nächsten fort.
Ihr Code lautet also:
Sub CountSheets()
Dim ws As Worksheet
Dim starting_ws As Worksheet
Set starting_ws = ActiveSheet 'remember which worksheet is active in the beginning
For Each ws In ThisWorkbook.Worksheets
If ws.Visible = true Then
ws.Activate
Application.SendKeys "%XRV%O", True
Application.Wait (Now + #12:00:01 AM#)
ws.Cells(1, 1) = "Created by Yo Castle 7 "
Application.Wait (Now + #12:00:01 AM#)
End If
Next
starting_ws.Activate 'activate the worksheet that was originally active
End Sub