Скопируйте элемент по всей книге с исключением нескольких листов. - PullRequest
0 голосов
/ 03 марта 2020

Я хотел бы скопировать элемент по всей книге, исключая один лист (самый первый).

Следуя приведенному здесь запросу: Копировать элемент по всей книге

и совет здесь:

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

Но в этом случае я теряю штамп на моем втором листе вместо первого, который я хочу исключить.

Что можно сделать, чтобы элемент ушел только на самый первый лист, а не на второй?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...