Я хотел бы скопировать элемент по всей книге, исключая один лист (самый первый).
Следуя приведенному здесь запросу: Копировать элемент по всей книге
и совет здесь:
VBA - L oop через все листы и исключить один
Я подготовил код, как показано ниже:
Sub asbuiltcopy()
Dim Ws As Worksheet, ws1 As Worksheet, ws2 As Worksheet, s As Shape
Set ws1 = Worksheets("Frontsheet") 'sheet containing original textbox
Set ws2 = Worksheets("Readme")
Set s = ws1.Shapes("AsBuiltBox") 'name of original textbox
Application.ScreenUpdating = False
For Each Ws In Worksheets
If Ws.Name <> ws1.Name Then
s.Copy
Ws.Paste
Ws.Shapes(Ws.Shapes.Count).Top = s.Top
Ws.Shapes(Ws.Shapes.Count).Left = s.Left
End If
If Ws.Name <> ws2.Name Then
s.Delete
End If
Next Ws
Application.ScreenUpdating = True
End Sub
Но отладчик говорит, что объект необходим.
Я немного изменил свой код:
Sub asbuiltcopy()
Dim Ws As Worksheet, ws1 As Worksheet, ws2 As Worksheet, s As Shape
Set ws1 = Worksheets("Frontsheet") 'sheet containing original textbox
Set ws2 = Worksheets("Readme")
Set s = ws1.Shapes("AsBuiltBox") 'name of original textbox
Application.ScreenUpdating = False
For Each Ws In Worksheets
If Ws.Name <> ws1.Name Then
s.Copy
Ws.Paste
Ws.Shapes(Ws.Shapes.Count).Top = s.Top
Ws.Shapes(Ws.Shapes.Count).Left = s.Left
End If
Next Ws
Application.ScreenUpdating = True
With ws2
s.Delete
End With
End Sub
Но в этом случае я теряю штамп на моем втором листе вместо первого, который я хочу исключить.
Что можно сделать, чтобы элемент ушел только на самый первый лист, а не на второй?