我在sheet1(主表)中有数据要除以300,然后粘贴到每张表中。
这些工作表是由VBA代码创建的。
如果我的lastrow给出一个十进制值,我会发现问题。
例如我计算MYdata的最后一行,然后将其除以300,因为我在每张图纸中需要的数据最多为300。如果我的最后一行数据为1342,除以300,则得到4.473333333。这只会创建4张纸。我需要5张数据。
Sub test()
Dim lrow As Long, lrow1 As Double
lrow = Sheet3.Range("a65000").End(xlUp).Row
lrow1 = Sheet3.Range("a65000").End(xlUp).Row
num = lrow / 300
For x = 1 To num
Sheets.Add
ActiveSheet.Name = x
Sheet3.Activate
Sheet3.Range("a2:a301").Select
Sheet3.Range("a2:a301").Cut
Sheets(x).Select Range("a1").Select
ActiveSheet.Paste
Sheet3.Select
Selection.Delete Shift:=xlUp
Next x
End Sub
答案 0 :(得分:1)
这将始终将您舍入到下一个整数
num = Round((lrow / 300) + 0.5, 1)
一些建议的更新
Option Explicit
Sub Parse ()
Dim ws As Worksheet: Set ws = ThisWorkbook.Sheets("Sheet3")
Dim ns As Worksheet 'New Sheet
Dim lrow As Long, x
lrow = ws.Range("A" & ws.Rows.Count).End(xlUp).Row
For x = 1 To Round((lrow / 300) + 0.5, 1)
Set ns = ThisWorkbook.Sheets.Add(After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count))
ns.Name = x
ws.Range("A2:A301").Copy ns.Range("A1")
ws.Range("A2:A301").Delete Shift:=xlUp
Next x
End Sub