2017-07-10 3 views
1

私はここを見て、多くの解決策を試しましたが、期待通りにコードを実行できませんでした。VBAで保存されたマクロが有効なファイルを元のファイルに戻す

私は、私が作成した「オリジナル」

という名前のシートに一つのモジュールと1つのマクロ有効ブックを持っている「オリジナル」のシートをコピーして、コピーを保存するためのボタンを追加し、マスタとして第2のシートを持っていますマクロを有効にします。

コピーしたファイルを開くと、マクロは引き続き初期ファイルを参照します。ソースファイルをユーザーに配布することができないため、マクロをコピーしたファイルに入れるだけです。続き

は私が==>私はあなたの助けに感謝しますどのように私は、ファイル

Sub savefile(fname As String, compid As Long) 
    fname = "PS_" & fname 
    Set newBook = ActiveWorkbook 
    Application.DisplayAlerts = False 

     newBook.SaveAs fname, FileFormat:=xlOpenXMLWorkbookMacroEnabled 
     Application.DisplayAlerts = True 

    closefile newBook 

End Sub 

を保存するファイル

Sub createNew(fineName As String) 
    Dim mybook As Workbook 
    Set mybook = ThisWorkbook 
    Set newBook = Workbooks.Add 
    mybook.Sheets("Original").Copy Before:=newBook.Sheets(1) 
    Set newWs = newBook.Sheets("Original") 
    newWs.Name = Left(fineName, 30) 
End Sub 

をコピーする方法

==>私のコードです!

+0

たぶん[この記事](https://stackoverflow.com/questions/18497527/copy-vb​​a-code-from -a-sheet-in-one-workbook-to-another)を使用して、マクロモジュールを別のブックにエクスポートする方法を説明します。 –

+0

* "コピーしたファイルを開くと、マクロはまだ初期ファイルを参照しています" *:実際にはコピーされたワークシートのコードを除き、新しいブックにはコードは保存されません。元のブックの他のモジュールのマクロは、新しいブックにまったくコピーされません。そして、彼らは自分のwotkbookを参照しています**。私はあなたが直面している問題を正確に理解していません。さらに明確にすることはできますか? –

+0

ありがとうございます。私は、新しくコピーされたファイルにもマクロモジュールが必要です。 @Fernando。 – Adjeiinfo

答えて

1

ありがとうございます。私は問題を解決することができた。あなたのコメントのおかげで私は私が新しくコピーされたファイルにモジュールをコピーするために持っていたが実現

Sub CopyOneModule() 
Dim FName As String 
With Workbooks("Book2") 
*** FName = .Path & "\code.txt" 
*** .VBProject.VBComponents("Module1").Export FName 
End With 
Workbooks("book1").VBProject.VBComponents.Import FName 
End Sub 
関連する問題