Makro do kopiowania wszystkich arkuszy i zmiany nazwy (VBA)

Witam

Chcę utworzyć makro, aby skopiować wszystkie arkusze rysunku i zmienić ich nazwy z sufiksem -SYM (bez znajomości nazw różnych arkuszy)

Znalazłem ten kod, aby skopiować arkusz, ale nie mogę zmodyfikować kodu, aby skopiować i zmienić ich nazwy za pomocą pętli.

'----------------------------------------------------------
' Preconditions:
' 1. Open a drawing document containing one sheet
'    named Sheet1.
' 2. Open the Immediate window.
'
' Postconditions:
' 1. Activates Sheet1.
' 2. Copy and pastes Sheet1 as Sheet1(2) and activates Sheet1(2).
' 3. Copy and pastes Sheet1 as Sheet1(3) and activates Sheet1(3).
' 4. Examine the FeatureManager design tree and Immediate window.
'----------------------------------------------------------
Option Explicit

Dim swApp As SldWorks.SldWorks
Dim Part As DrawingDoc
Dim swModel As ModelDoc2
Dim boolstatus As Boolean

Sub main()

    Set swApp = Application.SldWorks
    Set swModel = swApp.ActiveDoc
    Set Part = swModel

    If (Part Is Nothing) Then
        MsgBox " Please open a drawing document. "
        End
    End If

    Dim currentsheet As Sheet
    Set currentsheet = Part.GetCurrentSheet
    Part.ActivateSheet (currentsheet.GetName)
    Debug.Print "Active sheet: " & currentsheet.GetName

    boolstatus = Part.Extension.SelectByID2("Feuille1", "SHEET", 0.09205356547875, 0.10872368523, 0, False, 0, Nothing, 0)
    swModel.EditCopy
    boolstatus = Part.PasteSheet(swInsertOption_BeforeSelectedSheet, swRenameOption_No)
    Set currentsheet = Part.GetCurrentSheet
    Part.ActivateSheet (currentsheet.GetName)
    Debug.Print "Active sheet: " & currentsheet.GetName

    boolstatus = Part.Extension.SelectByID2("Feuille1", "SHEET", 0.09205356547875, 0.10872368523, 0, False, 0, Nothing, 0)
    swModel.EditCopy
    boolstatus = Part.PasteSheet(swInsertOption_AfterSelectedSheet, swRenameOption_No)
    Set currentsheet = Part.GetCurrentSheet
    Part.ActivateSheet (currentsheet.GetName)
    Debug.Print "Active sheet: " & currentsheet.GetName

End Sub

 

Witam 

Oto podejście (nie jest to moja specjalność, ale mam nadzieję, że pomoże),

(HS/ jak wkleić kod?  /HS) 

 


copy_rename_sheet.png
1 polubienie

Testuję to i przekażę Ci opinię, dla kodu jest to ta ikona:

po prostu wybierz język, a następnie tutaj VBScript.

1 polubienie

Tak proste, że nawet nie wiem, jak mogłam to przegapić... Może zmęczenie z ostatniego weekendu!

Dziękuję, @Lynk będę mógł kontynuować mój projekt, utknąłem na tej części na 3-4 godziny.