Supondo que a caixa de texto é denominada "Caixa de texto 1" em cada folha, você só precisa mover a linha Set txBox =
dentro do seu loop For
. Caso contrário, txBox
refere-se apenas à caixa de texto na planilha que estava ativa quando você iniciou sua macro. Como txBox
não está mais na planilha ativa, Selection
não se refere a txBox
, mas é mais provável que seja uma célula e não necessariamente uma caixa de texto, portanto, o erro "Objeto não suporta esta propriedade ou método". Espero que o código abaixo faça o truque ou, pelo menos, faça você avançar na direção certa.
Dim I As Integer
Dim txBox As Shape
For I = 1 To Worksheets().Count
Worksheets(I).Activate
Set txBox = ActiveSheet.Shapes("Text Box 1")
txBox.Select
Selection.ShapeRange.IncrementLeft 586.5
Next I
Editar:
Como um aparte, você pode melhorar o desempenho de sua macro evitando todas as chamadas .Select
, .Activate
, Selection
.
Dim ws as Worksheet
Dim txBox As Shape
For Each ws in Worksheets
Set txBox = ws.Shapes("Text Box 1")
txBox.IncrementLeft 586.5
Next ws