2016-09-27 8 views
-1

私はVBAを初めて使用しています。私は複数のワークシート名に必要なセル番号の範囲を持っています。現在、私は、以下に示すように、私が持っている行の数に基づいて複数のワークシートを作成しています。マクロを使用して複数のワークシート名に対して一連のセル値を使用しようとしています

Sub Copier() 
    Dim x As Integer 
    x = InputBox("Enter number of times to copy worksheet") 
    For numtimes = 1 To x 
    ActiveWorkbook.Sheets("OMRS 207").Copy _ 
    After:=ActiveWorkbook.Sheets("OMRS 207") 
    Next 
    End Sub 

は今、一つだけ名前をつかむことを、私は元のワークシート内のセルの範囲全体を使用して、これらのワークシートを生成したい207 OMRS。これは理にかなっていますか?誰でも助けることができますか?

+1

[VBAで最後に使用されたセルを検出する際のエラー](http://stackoverflow.com/questions/11169445/error-in-finding-last-used-cell-in-vba)設計上の問題のように。 – Comintern

+0

何もループしません。あなたの 'For'ループでは何も進んでいないので、同じシートを繰り返しコピーします。 – BruceWayne

+0

私たちはあなたが望むものとして混乱しています。あなたはワークシートの名前をOMRS 207のセルの内容に基づいて欲しいと言っていますか?ソース内の各セルのシートを作成する場合は、なぜユーザーに番号を入力するよう依頼するのですか? OMRS 207で範囲を宣言してから「for eachRange in myRange」を「for numtimes = 1 to x」の代わりに宣言すると、各シートの名前をcl.textに変更できます。 – Hrothgar

答えて

1

下記のコードを試してください。あなたが新しく追加されたシートにシート名として行番号をしたい場合、私はちょうどrng.rowを使用する列A.

の値ごとに、あなたのデータは、シート1で2列目からスタートし、シート名を欲しいと仮定

Dim data As Worksheet 
Dim rng As Range 

Set data = ThisWorkbook.Sheets("Sheet1") 
Set rng = data.Range("A2") 

Do While rng <> "" 

ThisWorkbook.Worksheets.Add 
ActiveSheet.Name = rng.Value 
Set rng = rng.Offset(1, 0) 
Loop 

シートに名前を割り当てています。

関連する問題