2017-11-30 5 views
0

マクロを使用してシートを1つのExcelファイルにコピーします。マクロは古いプロジェクトのものなので、微調整が必​​要です。それは次のようになります。別のファイルにコピー中にシート名を変更

私は必要なもの、私はコピーシートの名前を変更する方法です元のファイルからシート名のinsted、私はそれがファイル名に名前を変更することを希望、またはファイル名を追加しますシート名に。古いマクロコードにコメントはありません

答えて

1

(私は個人的に限り、それはそれは大丈夫だ作品としてWindows(sFname).Activateが好きでないが)、これはシート名を変更するために何をするかです:

Sub CombineSheets() 

    Dim sPath As String 
    Dim sFname As String 
    Dim wBk As Workbook 
    Dim wSht As Variant 

    Application.EnableEvents = False 
    Application.ScreenUpdating = False 
    sPath = InputBox("Enter a full path to workbooks") 
    ChDir sPath 
    sFname = InputBox("Enter a filename pattern") 
    sFname = Dir(sPath & "\" & sFname & ".xl*", vbNormal) 
    wSht = InputBox("Enter a worksheet name to copy") 
    Do Until sFname = "" 
     Set wBk = Workbooks.Open(sFname) 
     Windows(sFname).Activate 
     Sheets(wSht).Copy Before:=ThisWorkbook.Sheets(1) 
     'add this line  --v 
     ThisWorkbook.Sheets(1).Name = "stack" & Replace(Time, ":", "") 
     'this line is added --^ 
     wBk.Close False 
     sFname = Dir() 
    Loop 
    ActiveWorkbook.Save 
    Application.EnableEvents = True 
    Application.ScreenUpdating = True 

End Sub 

。なお、名前が同じであるため、複数のワークシートを保存しようとすると速すぎるループを作成すると、エラーが発生する可能性があります。したがって、名前のためのカウンターを導入することは賢明な考えです。

関連する問題