2016-10-01 5 views
2

'ここでは初心者です。ご理解いただきありがとうございます!
私は複数のシートを含むブックを持っている、と私はする必要があります:ワークシートのVBAを使ってシートのペアを選択し、それらを新しいwbにコピーする方法は?

1)を選択ペア(インデックスとインデックス+1)

2))新規ブック

3にそれらをコピーしますラベルが(例えばA1など)の参照セルにあるもので、シートの名前を変更し

4)次に、ペアの(数十)

私は(唯一のVBAに非常に新しいですので、ブック内のシートのすべてのペアのための繰り返し1つを取ったクラス)、私は簡単に混乱しています。私が今までに持っているのは、シートA1をそのセルにあるテキスト文字列にリネームするためにセルA1を参照している部分だけです。私はそれの残りの部分を把握することはできません。私はそれがworksheet.indexやワークシート(インデックス)と何か関係があり、インデックスが2を追加し、コピーする前にそのシートと次のシートをアクティブにする何らかのループがあると思っています:シート1と2、シート3と4など。

Private Sub Worksheet_Calculate() 
Dim s As String 
s = "sheet 1" 
If Range("A1").Value <> "" Then 
    s = Range("A1").Value 
End If 
ActiveSheet.Name = s 
End Sub 

私はそれを理解する方法、セルA1を使用すると、NULL値を持つシートに名前を付けることができないので、それがnullではないことを確認するためにチェックする必要があります。残りの部分の使い方や構文は、今のところ私の脇にありますが、私は本当にこのコミュニティの仲間になり、学びたいと思っています。私は自分の仕事ではまったく新しく、パートタイムのみ働いているので、私の上司に解決策をもたらすことは、私が永久になることを意味するかもしれません。したがって、大きな、大きな感謝!

+0

これらのインデックスシートは一貫した方法で名前が付けられていますか?ワークブック内の利用可能なすべてのシートをループするコードを書くか、シートを含むブックを開くか、コピーしたいコンテンツのワークシートを識別するコードを書く必要があります。これらのシートの名前が一貫していない限り、問題が発生する可能性があります。 – Lowpar

+0

はい、シートの名前はすべてg/l口座番号:xx-xxxx-xxxx-xxで一貫しています。しかし、何らかのコマンド(メソッド?)は、INDEX番号(1,2,3、など)に基づいてシートを選択しますか? –

+0

シートを作成する必要がありますが、シートの名前と一貫性がある場合は、 – Lowpar

答えて

0
Option Explicit 

Private Sub Worksheet_Calculate() 
Dim s As String 
Dim ws As Worksheet 
Dim wsi As Worksheet 

Set wsi = Sheets("Sheet4")' You need to create a name for the sheet to paste into 

For Each ws In ActiveWorkbook.Worksheets 
If Not IsEmpty(ws.Range("A1")) and ws.name = "INDEXCOPY" Then 
    ws.Name = ws.Range("A1").Value 
    ws.Range("A1:" & ws.Range("A1").SpecialCells(xlCellTypeLastCell).Address).Copy _ 
    Destination:=wsi.Range("A1") 
End If 
Next ws 
End Sub 

は、このコードは、あなたが開始されます、しかし、あなたがにコピーするインデックスシートに対して、あなたからコピーするインデックスシートを区別するための方法が必要です。あなたはif文を追加する必要があります。上記のコメントを参照してください。私はここを見ます - http://www.rondebruin.nl/win/s3/win006.htm

+0

@ Lowpar!ありがとうございます!私はこれにいくつかの考えを与え、私が理解できるものを見ていきます。あなたが提供したリンクもチェックします。ちょうど私がどのようなコードを行っているかを理解するために... –

+0

wsi = Sheets( "Sheet4")は 'Sheet4'の場所にシートをコピーするか、 'Sheet4'に名前を付けますか?また、私はws.name = INDEXCOPY argを理解していません。それはちょうど拳のシートを取るか?モジュールは範囲A1を最後のセル(xlCellTypeLastCell).Addressに取り込み、それをコピーして、Range( "A1")から始まるwsiワークシートに挿入します。また、INDEX = 2シートを同じ時刻に同じ新しいwb as sheet1にコピーする方法。それが可能であれば、それは本当に各PAIRのためです。次に、NEXTはSheets 3と4を新しいwbにコピーします。 Sheets 5 and 6 to NEWなど –

+0

私は研究していますが、簡単に混乱しているため(特にINDEX部分を理解しようとしているため)、現時点では何の答えもコメントも投稿していません。ハ! –

関連する問題