プロが教える店舗&オフィスのセキュリティ対策術

エクセル(EXCEL)VBAの質問です。数万行にわたって入力されているデータがありますが、これを1000行づつに分割して、別々の新規BOOK(またはSHEET)へコピーしていきたいのですが、これを実現するVBAを教えていただけ ないでしょうか?

VBAマスターの諸兄方、どうぞ宜しくお願い致します。

A 回答 (1件)

同じBOOK内に別シート作成の例



Sub test01()
  Dim ws As Worksheet, ts As Worksheet
  Dim x As Long, y As Long, i As Long, z As Long
  Set ts = ActiveSheet
  x = ts.UsedRange.Rows.Count
  y = Int(x / 1000) + IIf(x Mod 1000 > 0, 1, 0)
  z = ts.UsedRange.Rows(1).Row
  For i = 1 To y
    Set ws = Sheets.Add
    ws.Name = z & "~" & z + 999
    ts.Rows(z & ":" & z + 999).Copy ws.Range("A1")
    z = z + 1000
  Next i
End Sub

別BOOK作成の例

Sub test02()
  Dim wb As Workbook
  Dim ts As Worksheet
  Dim x As Long, y As Long, i As Long, z As Long
  Set ts = ActiveSheet
  x = ts.UsedRange.Rows.Count
  y = Int(x / 1000) + IIf(x Mod 1000 > 0, 1, 0)
  z = ts.UsedRange.Rows(1).Row
  For i = 1 To y
    Set wb = Workbooks.Add
    wb.Sheets(1).Name = z & "~" & z + 999
    ts.Rows(z & ":" & z + 999).Copy wb.Sheets(1).Range("A1")
    z = z + 1000
  Next i
End Sub
    • good
    • 5

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!