2016-06-13 8 views
0

私はVBAにはかなり新しく、以下の問題を解決する適切な方法を見つけることができません。VBAとリスト付きのコピー貼り付け

私は5つのワークシートを持つExcelワークブックを持っています。最後の3つのワークシートはデータでいっぱいですが、最初のワークシートは3つの最後のワークシートの名前のリストです。これらのワークシートの1つの名前をリストから選択すると、空の2番目のワークシートにコピーが貼り付けられます。

私はリスト内のワークシート4を選択し、のは言わせて、ワークシート2は4

+1

マクロを記録すると、あなたが道のほとんどを取得します... –

+0

こんにちは、ありがとうございましたあなたの答えです。もう少し詳しく説明できますか? – user6457870

+0

確か:http://www.excel-easy.com/vba/examples/macro-recorder.html –

答えて

1

は、シート1のコードモジュールにこれを貼り付け、今のワークシートのコピーペーストです。
変更これら:

  1. Sheet2Name
  2. Sheet1NamesListAddress
  3. このNewName
    Private Sub Worksheet_SelectionChange(ByVal Target As Range) 
     
        Const Sheet2Name = "Sheet2" 
     
        Const Sheet1NamesListAddress = "A1:A10" 
     
        Const NewName = "New Name" 
     
    
     
        If Not Intersect(ActiveCell, Range(Sheet1NamesListAddress)) Is Nothing Then 
     
         Application.DisplayAlerts = False 
     
         On Error Resume Next 
     
         Sheets(Target.Text).Copy Before:=Sheets(2) 
     
         ThisWorkbook.Worksheets(Target.Text).Delete 
     
         Sheets(2).Name = NewName 
     
         Application.DisplayAlerts = False 
     
         On Error GoTo 0 
     
        End If 
     
    End Sub
+0

お返事ありがとうございました。それはマクロレコーダーとうまくいった。 ちょうど終了するには、私は2つの質問があります。 1 - 私はSheet1コードのモジュールに入れて、それが動作しないため、私はそのためのボタンをする必要があります。それを自動的に行う方法はありますか? 2 - ありがとうThomas。今私がコピーしたワークシートの名前とは違う、私の名前をリストに載せたいなら、リストの名前がAで、「AA1」というワークシートがコピーされますが、どうすればいいですか? 乾杯してください – user6457870

+0

Sheet1を使用していることを確認してください。 [VBAプロジェクト]ウィンドウには、シートコード名とシート名が表示されます。この例のSheet3(Sheet2)はSheet3を参照しています。 –

+0

[開発者]タブの[Excelリボン]> [挿入]のボタンを追加できます。しかし、まず、開発者タブを表示するには、左側のパネルのFile> options> customize ribbon>からdeveloperをクリックしてください。 –

関連する問題