вызывая ошибку в Excel 2007как добавить рабочую книгу не в режиме совместимости - PullRequest
0 голосов
/ 03 сентября 2011

оказывается, что ошибка происходит, потому что новая рабочая книга, которую я создал 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

Ответы [ 2 ]

3 голосов
/ 05 сентября 2011

Вы пробовали без выбора каждой ячейки перед вставкой?(вам не нужно select каждую ячейку перед использованием в vba) - и вам не нужно копировать / вставлять, если вы хотите скопировать только значение (это очень очень медленно)

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
2 голосов
/ 07 сентября 2011

Так что я исправил проблему. это был вопрос добавления рабочей книги. сохранение как .xlsx или что-то еще. и затем снова открываю, прежде чем я что-то вставлю это выводит вновь добавленную книгу из режима совместимости.

Спасибо всем за помощь!

...