2017-09-15 12 views
2

毎日マスターブックから別のブック(ワークブック2)にスプレッドシート全体をコピーする必要があります。私はブック2の現在の日付でタブの名前を変更する必要があります。ブック2を開きたくありません。私は自動的に別の場所に保存されている他のブックを更新するために、マスターブックのマクロボタンを押します。マスターブックからシート全体をコピーして別のブックに貼り付ける

これは@CLRは、すでにあなたがそれにシートを貼り付けるブックを開く必要があります述べたように、私は

Sub Graph() 
    Cells.Select 
    Selection.Copy 
    ActiveWindow.ActivateNext 
    Sheets.Add After:=Sheets(Sheets.Count) 
    Sheets("Sheet2").Name = "04 08 2017" 
    Cells.Select 
    ActiveSheet.Paste 
    ActiveWindow.ActivateNext 
End Sub 
+3

あなたは**それに何かを追加するために、ワークブック2を開く必要があります。あなたは目に見えないように開いて、ページを追加して閉じることを検討するかもしれませんが、それを開く必要があります。 – CLR

+0

カット&ペーストの代わりに、worksheet.copyを使用してシート全体をコピーすることができます。とにかく、CLRが言ったように、いずれにしても目的のワークブックを開く(または新しいワークブックを作成する)必要があります。 – FunThomas

+0

また、より効率的なセル/範囲レベルではなく、シートレベルでコピーすることもできます。ブック2を開き、シートをブック1からブック2に移動/コピーし、タブの名前を変更してから、ブック2を閉じて保存します。これにより、必要なアウトラインコードが表示されます。画面更新のオン/オフなど – CLR

答えて

2

を記録しようとしたマクロです。

次のようなものが動作しますが、これは一例であり、完全な解決策ではありません。

は、あなたはまだ、少なくとも、ブックを開いている間に

  1. キャッチミス...に適切なエラー処理を実装する必要がありますし、それが(すでに別のユーザーによって開かれているため)、保護されたか、間違ったファイル/パスされます。
  2. 名前が一意である必要があるため、ワークシートの名前を変更しながらエラーをキャッチします。既存の名前を再使用するとエラーが発生します。

エラー処理を実装しないと、エラーが発生した場合に状態が不定になる可能性があります。


Option Explicit 'first line in your module forces correct variable declare. 

Public Sub Graph() 
    Application.ScreenUpdating = False 'Disable screenupdating 

    'Open destination workbook 
    Dim DestWorkbook As Workbook 
    Set DestWorkbook = Workbooks.Open(Filename:="C:\YourPathHere\Workbook2.xlsx") 

    With DestWorkbook 
     'Copy ActiveSheet 
     ThisWorkbook.ActiveSheet.Copy After:=.Sheets(.Sheets.Count) 
     'Instead of copying the ActiveSheet I recommend to copy a specific sheet by name 
     'ThisWorkbook.Worksheets("YourSourceSheetName").Copy After:=.Sheets(.Sheets.Count) 

     'Rename last sheet (the one we inserted above) 
     .Sheets(.Sheets.Count).Name = "04 08 2017" 

     'Close and save workbook2 
     .Close SaveChanges:=True 
    End With 

    Application.ScreenUpdating = True 'Enable screenupdating 
End Sub 
関連する問題