2017-09-01 3 views
0

として別のワークシートを使用してコードです:これは私がように使用する必要が私は2番目の部分を持っている今、私の列に基づいて、新しいワークシートを作成しワークシート内の列からワークシートを作成し、テンプレートここ

Sub CreateSheetsFromAList() 
    Dim MyCell As Range, MyRange As Range 

    Set MyRange = Sheets("Company").Range("B2") 
    Set MyRange = Range(MyRange, MyRange.End(xlDown)) 

    For Each MyCell In MyRange 
     Sheets.Add After:=Sheets(Sheets.Count) 'creates a new worksheet 
     Sheets(Sheets.Count).Name = MyCell.Value ' renames the new worksheet 
    Next MyCell 
End Sub 

」それはヘッダー情報とボタンを持っています。

Sub Wsh_PasteSpecial() 
Dim WshSrc As Worksheet 
Dim WshTrg As Worksheet 

Rem Set working worksheets 
Set WshSrc = ThisWorkbook.Worksheets("RecordsTemplate") '<-- my template 

Set WshTrg = ThisWorkbook.Worksheets("Target") '<-- QUESTION IS HOW DO I SET THE TARGET. 

    WshSrc.Cells.Copy 
    With WshTrg.Cells 
     .PasteSpecial Paste:=xlPasteColumnWidths 
     .PasteSpecial Paste:=xlPasteFormats 
     .PasteSpecial Paste:=xlPasteFormulasAndNumberFormats 
     Application.CutCopyMode = False 
    End With 
End Sub 
+0

は、どのように目標を設定することをありませんか?エラーが発生していますか?あなたがしたいことをしていないのですか?ここで問題/質問は何ですか? – JNevill

+0

"Target"はシートの名前ではなく、シートの名前がトップサブルーチンに 'MyCell.Value'として動的に追加されていますか?下のサブルーチンのすべてのコードを取り出し、そのループの中でトップルーチン内に貼り付け、 'SET WshTrg = Sheets(Sheets.Count)'をセットするだけですか?私は何をしようとしているのか、何が問題になっているのかがはっきりしていないので、ここで完全に推測しています。 – JNevill

答えて

0

私はあなたの2つのコードをマージ:

Sub CreateSheetsFromAList() 
    Dim MyCell As Range, MyRange As Range 
    Dim WshSrc As Worksheet 
    Dim WshTrg As Worksheet 

    Set MyRange = Sheets("Company").Range("B2") 
    Set MyRange = Range(MyRange, MyRange.End(xlDown)) 
    Set WshSrc = ThisWorkbook.Worksheets("RecordsTemplate") '<-- my template 

    For Each MyCell In MyRange 
     Sheets.Add After:=Sheets(Sheets.Count) 'creates a new worksheet 
     Sheets(Sheets.Count).Name = MyCell.Value ' renames the new worksheet 
     Set WshTrg = ThisWorkbook.Worksheets(MyCell.Value) 
     WshSrc.Cells.Copy 
     With WshTrg.Cells 
      .PasteSpecial Paste:=xlPasteColumnWidths 
      .PasteSpecial Paste:=xlPasteFormats 
      .PasteSpecial Paste:=xlPasteFormulasAndNumberFormats 
      Application.CutCopyMode = False 
     End With  
    Next MyCell 
End Sub 
+0

遅い回答をおかけして申し訳ありませんが、これはうまくいきましたが、スプレッドシートをクリアするボタンがありますが、コピーするにはどうしたらいいですか? –

+0

ボタンは全く異なるものです。新しい質問を始めるのが最善でしょう。 – Luuklag

関連する問題