He escrito una macro que se supone que ejecuta un complemento en cada hoja de trabajo. El complemento es un complemento específico de Sage. ¿Estoy seguro de que las claves de envío deberían funcionar con cualquier clave de envío que introduzca? Sin embargo, ejecuta mi prueba "agregar texto" en todas las hojas, vuelve a la hoja activa original y luego ejecuta el complemento tantas veces como el recuento de hojas, todo en la hoja activa. ¿También necesito agregar algo para que omita las hojas de trabajo ocultas...? Por favor ayuda.
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
Respuesta1
Para ejecutar el marco solo en las hojas visibles, puede agregar unIF
justo después de iniciar el ciclo. Esto luego probará si elVisible
La propiedad es verdadera; de lo contrario, pase al siguiente.
Entonces tu código se convierte en:
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