全部混合。
会社で見直そうね。
ifでシートがあるかどうかを判別し、
あったらコピー、なければ次へって感じでどうかなと今は思ってる
'■やりたいイメージ
' 新しいブックにコピーしたい
' シート数の分だけ繰り返す
Sub 任意のシートを別ブックにコピー()
Dim teisyutsu As Workbook '提出用ファイル
Dim sagyou As Workbook '作業用ファイル
Dim yousosuu As Long '配列の要素に使える添え字の最大数。配列は0スタート
Dim useraddress As Variant 'コピーしたいシート名を格納する
Dim Sht As Worksheet 'コピー元のシート?
'シート名を配列に格納するよ
useraddress = Array("コピーしたいシート", "これも", "ああ、これも")
Set teisyutsu = Workbooks("まとめ.xlsx") '起動しておかないとここで実行エラーがでる
For Each Sht In useraddress 'シート数を取得して、その回数まわす
If Sht.Visible = True Then
Sht.Copy After:=teisyutsu.Worksheets(teisyutsu.Worksheets.Count) '取得した最後のシートの後ろにコピー
ActiveSheet.Cells.Copy
ActiveSheet.Cells(1).PasteSpecial Paste:=xlValues
Application.CutCopyMode = False
End If
Next Sht
'MsgBox UBound(useraddress) '配列数とれた!添え字の最大数だけど
'MsgBox useraddress(2) 'シート番号とれた!
'-----------------------------------------------
'配列に格納したシートの番号を取得して、
'それをシートコピー、値はりつけをする。
'それを指定したシートの数だけくりかえす。
'動作確認済みのやつ。
'ただし、「新しいブックにシートをコピーする」ってのが
'できてないので注意
'-----------------------------------------------
End Sub
'この下は動作確認OK!
Sub 元ブックから全シートを開いている別ブックにコピー()
Dim Matome As Workbook 'まとめたいブック
Dim Moto As Workbook 'コピー元になるブック
Dim Sht As Worksheet 'コピー元のシート?
Set Moto = ThisWorkbook '元のブックに、このファイルをセット
Set Matome = Workbooks("まとめ.xlsx") '起動しておかないとここで実行エラーがでる
For Each Sht In Moto.Worksheets 'シート数を取得して、その回数まわす
If Sht.Visible = True Then
Sht.Copy After:=Matome.Worksheets(Matome.Worksheets.Count) '取得した最後のシートの後ろにコピー
ActiveSheet.Cells.Copy
ActiveSheet.Cells(1).PasteSpecial Paste:=xlValues
Application.CutCopyMode = False
End If
Next Sht
End Sub
コメントする