2016-11-19 5 views
0

マクロを含むワークブック(wb1)があります。私はmsgboxでファイルを選択してファイルを開きます。ブックを別のワークブックに検索してコピーする

最初のシートの前にwb1にシートのコピーを保存して、 "xxxx"のようなsheet.nameのすべてのシートをループしたいと思います。

Sub GetFile() 

    Dim fNameAndPath As Variant, wb As Workbook 
    Dim wb1 As ThisWorkbook 

    fNameAndPath = Application.GetOpenFilename(FileFilter:="All Files (*.*),*.*", _ 
     Title:="Sélectionner le fichier des extractions Magnitude sur la Phase IAS CONSO") 

    If fNameAndPath = False Then Exit Sub 

    Set wb = Workbooks.Open(fNameAndPath) 

    For Each Sheet In wb.Sheets 

     If LCase(Sheet.Name) Like "*Sheet1*" Then 
      Range("A2").Select 
      'ActiveSheet.Delete 
     End If 

    Next Sheet 

答えて

0

これを試してみてください。

Option Explicit 

Sub GetFile() 
    Dim fNameAndPath As Variant 
    Dim sht As Worksheet 

    fNameAndPath = Application.GetOpenFilename(FileFilter:="All Files (.),.", Title:="Sélectionner le fichier des extractions Magnitude sur la Phase IAS CONSO") 
    If fNameAndPath = False Then Exit Sub 

    Set wb = Workbooks.Open(fNameAndPath) 
    For Each sht In wb.Sheets 
     If LCase(sht.Name) Like "*sheet1*" Then sht.Copy Before:=ThisWorkbook.Sheets(1) 
    Next sht 
    wb.Close False '<--| close the newly opened workbook without saving it 
End Sub 

をも私が変更注意:

If LCase(sht.Name) Like "*Sheet1*" 

に:

If LCase(sht.Name) Like "*sheet1*" 

それは比較すると思いますので、それ以外のチェックはTrueを返すことはありませんすべて小文字のcha (LCase(sht.Name))を大文字の文字列( "S")に変換する

+0

私の知る限りでは:私が前にコピーしたいのですが...値だけ - このコードでどのコードを使う必要がありますか?その後、コピーする前に:ThisWorkbook.Sheets(1) – jmten

+0

あなたは 'Copy()'メソッド中にそのことを行うことはできません。 ( 'Copy()'メソッドの前に)コピーするか、( 'Copy()'メソッドの後に)貼り付けるかのいずれかで動作する必要があります。あなたは私の答えを受け入れたいと思っています。 – user3598756

+0

ありがとう、ありがとう、あなたの助けをたくさんありがとう、私はペーストを使用します。 – jmten

関連する問題