2016-05-18 8 views
-1

私のワークブックは4枚が隠されています。私は、VBAを使用して新しいシートを作成します直前のシートの内容を同じワークブック内の新しいシートにコピーしたい

  1. にしたい
  2. コピー私は、コード

    sheet_name_to_create = InputBox("Enter Sheet Name") 
    
    For rep = 1 To (Worksheets.count) 
    If LCase(Sheets(rep).Name) = LCase(sheet_name_to_create) Then 
    MsgBox " This Sheet already exists" 
    Exit Sub 
    End If 
    Next 
    ActiveSheets.copy After:=Sheets(Sheets.count) 
    Sheets(ActiveSheet.Name).Name = sheet_name_to_create 
    

    が、このコードの下に使用してみました

上記で作成した新しいシートへの最後のシートのすべての内容すべての既存のシート(私はワークブックにある7枚のシートすべて)の新しいコピーを作成します。

可能な限りお勧めします。

ご協力いただきありがとうございます。

答えて

2

マクロは新しいシートの名前を尋ねて、最後のシートをコピーします。

Sub AddNewSheet() 
sheet_name_to_create = InputBox("Enter Sheet Name") 
For rep = 1 To (Worksheets.Count) 
    If LCase(Sheets(rep).Name) = LCase(sheet_name_to_create) Then 
    MsgBox " This Sheet already exists" 
    Exit Sub 
    End If 
Next 
Sheets(Sheets.Count).Copy After:=Sheets(Sheets.Count) 
Sheets(Sheets.Count).Name = sheet_name_to_create 
End Sub 
+0

@Cundyありがとうございました! :) –

+0

@cundy私はもう一つの質問があります。私がコピーしているExcelシートは、前のシートからデータを得る式を持っています。これらの式のリフレッシュは自動的に何とか更新できますか? –

+0

私はあなたを正しく理解していれば、単純にCTRL + Hを使ってシート全体の参照を変更することができます。マクロに追加する場合は、マクロレコーダーを使用し、必要に応じて結果を変更します。 – Cudny

関連する問題