2017-08-10 10 views
0

複数の同じブックでマクロを実行し、それらのブックの最初のシートを新しいブックにマージしようとしています。合併部分はインターネットのおかげで働いていますが、私は "マクロを実行する"部分をダウンさせるようには見えません。ここでは、これまでに私のコードです:私はマクロの実行を得るためのさまざまな方法を試してみました閉じたExcelブックでマクロを実行し、結果を新しいブックにマージする

Sub MergeSelectedWorkbooks() 
Dim SummarySheet As Worksheet 
Dim FolderPath As String 
Dim SelectedFiles() As Variant 
Dim NRow As Long 
Dim FileName As String 
Dim NFile As Long 
Dim WorkBk As Workbook 
Dim SourceRange As Range 
Dim DestRange As Range 


Set SummarySheet = Workbooks.Add(xlWBATWorksheet).Worksheets(1) 
FolderPath = "..." 
ChDrive FolderPath 
ChDir FolderPath 

SelectedFiles = Application.GetOpenFilename(_ 
    filefilter:="Excel Files (*.xl*), *.xl*", MultiSelect:=True) 

NRow = 1 
For NFile = LBound(SelectedFiles) To UBound(SelectedFiles) 
    ' Set FileName to be the current workbook file name to open. 
    FileName = SelectedFiles(NFile) 

    Set WorkBk = Workbooks.Open(FileName) 
    Run "Détaildesmlh_Bouton1_Cliquer" #this is what doesn't work 

    SummarySheet.Range("A" & NRow).Value = FileName 
    Set SourceRange = WorkBk.Worksheets(1).Range("A1:G19") 
    Set DestRange = SummarySheet.Range("B" & NRow) 
    Set DestRange = DestRange.Resize(SourceRange.Rows.Count, _ 
     SourceRange.Columns.Count) 
    DestRange.Value = SourceRange.Value 
    NRow = NRow + DestRange.Rows.Count 
    WorkBk.Close savechanges:=True 
Next NFile 
SummarySheet.Columns.AutoFit 
End Sub 

は、私が上記追加したコードが存在しないか、アクティブではないんいずれかのマクロため、エラーが返されます。回避策はありますか?私はオンラインで見つけたソリューションを調べてみましたが、残りのコードでは動作しないか、非常に複雑に見えます。

ありがとうございます!上記

答えて

1
Set WorkBk = Workbooks.Open(FileName) 
Run "Détaildesmlh_Bouton1_Cliquer" #this is what doesn't work 

構文は:)

これを試してみてくださいを修正されていないため、動作しません。

Set WorkBk = Workbooks.Open(FileName) 
Application.Run FileName &"!Détaildesmlh_Bouton1_Cliquer" 

N.B. - ファイル名が存在し、ブック名(つまりMyBook.xlsm)を渡すだけであれば、FileNameからUNCパスを取り除く必要があるかもしれません。

+0

ファイルは正しく開きますが、ブックにはマクロがないすべてのマクロが無効になっていることを確認します。私はUNCの道をはずす必要があるのでしょうか? – Doule

+1

1)マクロを自動的に有効にするためのExcelオプションが設定されていますか?そうでない場合は、それらを変更してください。2)マクロ名**は、ワークブックにあるとおり、正確に**ですか?そうでない場合は、それを調整します。 3)オープニングワークブックのマクロはプライベートサブにありますか?もしそうなら、それを公開してください。 4)UNCパスがある場合、直前のウィンドウに 'FileName'を出力すると' \\ server \ folder \ file \ mybook.xlsm'と表示されます。それがあれば、文字列操作を使ってファイル名だけを取得することができます...実際には(すべての文字列を書いた後で)単にFileNameの代わりに 'WorkBk.Name'を使います。 –

関連する問題