在Excel 2007中导致错误。 如何添加不兼容模式的工作簿

原来的错误发生因为新的工作簿我做workbook.add是在兼容模式与Excel 2003中有65536行的限制。 和试图粘贴的范围有更多的行比。 如何添加兼容模式下的工作簿?

For c = 1 To Round(z / x + 0.5) Rows("9:" & x).Select Selection.Copy Workbooks.Add Range("A9").Select ActiveSheet.Paste 'Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False ActiveWindow.ActivateNext Selection.Delete Rows("1:8").Copy ActiveWindow.ActivatePrevious Range("A1").Select ActiveSheet.Paste 'Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Range("E3") = c ActiveWorkbook.SaveAs Filename:=FileLocation2 & "\" & g & "-" & c _ , FileFormat:=xlNormal, Password:="", WriteResPassword:="", _ ReadOnlyRecommended:=False, CreateBackup:=False ThisWorkbook.Save ActiveWindow.Close Next c 

粘贴前你没有select每个单元格吗? (你不需要在使用vba之前select每个单元格) – 如果你只想复制值(这是非常慢的),你不需要复制/粘贴,

 Dim ws as Worksheet Set ws = ActiveSheet For c = 1 To Round(z / x + 0.5) Workbooks.Add ActiveSheet.Range("A9").Value = ws.Rows("9:" & x).Value 'you shouldn't have to use ActiveSheet but i'll keep it to show the difference between ws and ActiveSheet ActiveWindow.ActivateNext 'this is dangerous because you can't be sure which window will be activated next Selection.Delete 'this is dangerous too. Can't you tell which row is this instead of using Selection? Is this macro user triggered? Rows("1:8").Copy ActiveWindow.ActivatePrevious 'same comment as above Range("A1").Paste Range("E3").Value = c ActiveWorkbook.SaveAs Filename:=FileLocation2 & "\" & g & "-" & c _ , FileFormat:=xlNormal, Password:="", WriteResPassword:="", _ ReadOnlyRecommended:=False, CreateBackup:=False ThisWorkbook.Save ActiveWindow.Close Next c 

所以我解决了这个问题。 这是添加工作簿的问题。 保存为.xlsx或其他。 然后在我粘贴任何东西之前重新打开它。 这会使新添加的工作簿脱离兼容模式。

谢谢你们每一个人的帮助!