简单解释一下:
使用Union方法可以将多个非连续区域连接起来成为一个区域,从而可以实现对多个非连续区域一起进行操作,但是第一次复制时,第一行和后面的行区域是连续的,所以使用了一个select case语句进行了判断,第二次复制时,两个区域就是非连续的了,可以使用union方法了,这是比较简单的方法。代码在2010版下调试通过,03版本列数没有那么多,可以自己修改下A1:XFD1这里。
Sub 分割行并保存文件()
Dim Wb As Workbook
保存文件名含路径 = "d:\temp\ab"
i = 1
j = 1
Set sh = ActiveSheet
Do While i < sh.UsedRange.Rows.Count
Set Wb = Workbooks.Add
sh.Activate
Select Case i
Case 1
Range(sh.Cells(i, 1), sh.Cells(i + 3000 - 1, 1)).EntireRow.Copy
Case 2 To sh.UsedRange.Rows.Count
Union(sh.Range("A1:XFD1"), sh.Range(Cells(i, 1), Cells(i + 3000 - 1, 1))).EntireRow.Copy
End Select
Wb.Sheets(1).Paste
Wb.SaveAs 保存文件名含路径 + Trim(Str(j))
Wb.Close
i = i + 3000
j = j + 1
Loop
End Sub
uio