0

スプレッドシートの一部を新しいファイルにコピーするためにこのコードを書きましたが、元のファイルのすべてのマクロは、元のファイルへのリンクとして新しいファイルに移動します。スプレッドシートをコピーして、新しいファイルでマクロを削除したいと考えています。私のコードの下を見つけてください。どうすれば変更できますか?

Sub IndRepPD()
    Dim NewName As String
    Dim nm As Name
    Dim ws As Worksheet

    If MsgBox("Are you sure you want to generate an Indidual Report for PD?" & vbCr & _
    "The file will be saved as PD_VA2013_KPI in the same directory as the original." _
    , vbYesNo, "Generate Individual Report for PD") = vbNo Then Exit Sub

    With Application
        .ScreenUpdating = False

         On Error GoTo ErrCatcher
        Sheets(Array("Inhalt", "PD", "PD Quality", "Glossary", "Status", "PD History")).Copy
        On Error GoTo 0

            For Each ws In ActiveWorkbook.Worksheets
            ws.Cells.Copy
            ws.[A1].PasteSpecial Paste:=xlPasteColumnWidths, Operation:=xlNone, _
        SkipBlanks:=False, Transpose:=False
            Application.CutCopyMode = False
            Cells(1, 1).Select
            ws.Activate
        Next ws
        Cells(1, 1).Select

            For Each nm In ActiveWorkbook.Names
            nm.Delete
        Next nm
        ActiveWindow.DisplayWorkbookTabs = False
        Worksheets("PD").Select
            NewName = "PD_VA2013_KPI"
        ActiveWorkbook.SaveCopyAs ThisWorkbook.Path & "\" & NewName & ".xls"
        ActiveWorkbook.Close SaveChanges:=False

        .ScreenUpdating = True
    End With
    Exit Sub

ErrCatcher:
    MsgBox "Specified sheets do not exist within this workbook"
End Sub
4

1 に答える 1

0

.xlsx にはマクロは保存されませんが、スプレッドシートのボタンを使用してマクロを実行すると、元のファイルのマクロへのリンクが引き続き存在します。

于 2013-03-28T16:54:06.107 に答える