2017-09-18 10 views
0

(エクセル2007)エクセルVBA私はコードを2枚持っているブックを作成し、シート

を取り込みます。

一つは作成して保存し、新しいExcelブックを:

Sub NewWorkBook() 

Set NewBook = Workbooks.Add 
    With NewBook 
    .SaveAs Filename:="NewBook.xlsx" 
    End With 

End Sub 

他のワークシートを作成します。

Public Sub CreateWorksheets() 

Dim n As Integer 
n = 1 
Dim WrkSheet As Worksheet 
For n = 1 To 31 
    If n > Worksheets.Count Then 
    Set WrkSheet = Sheets.Add(After:=Sheets(Worksheets.Count)) 
    Else 
    Set WrkSheet = Sheets(Worksheets.Count) 
    End If 
WrkSheet.Name = n 
Next n 
End Sub 

私は「ワークブックB」を作成するためにこれらを使用し、ワークシートを移入する必要がありますが、すべてのコードは 'Workbook A'から実行する必要があります。

ブックを作成するための最初のサブを取得できますが、CreateWorksheetsサブはコードを含むワークブックでのみ動作し、1回だけシートを除いてすべて削除します。

アイデア?

+0

私はあなたのオブジェクトを修飾する場合は、彼らがしているワークブック何まで、あなたの2番目のマクロでは、それが動作することを確信している - > Worksheets.Count Then'使用たとえば、代わりにN場合は '使用します'If​​ n> Workbooks(" NewBook.xlsx ")。Worksheets.Count Then' – eirikdaude

答えて

1
Sub NewWorkBookAndSheets() 
Dim NewBook As Workbook 
Dim n As Integer 
Dim start As Integer 

Set NewBook = Workbooks.Add 
With NewBook 
    start = .Worksheets.Count + 1 
    if start < 31 then 

    For n = start To 31 
      .Sheets.Add After:=Sheets(n - 1) 
    Next n 
    For n = 1 To 31 
     .Worksheets(n).Name = n 
    Next n 
    end if 
    .SaveAs Filename:="NewBook.xlsx" 
End With 

End Sub 
+0

Spot on!迅速な返信をありがとう。 – SteelyDanFan

関連する問題