[ОТВЕТИТЬ]
Опции темы
19.12.2013 14:27  
Yan_Zay
Добрый день!
Возникла следующая проблема: пытаюсь сформировать отчет "Отчеты - Бухгалтерские - Оборотная ведомость", устанавливаю галочки По подразделению, Период, Все товары, В отпускных ценах - ОК. На след. этапе выбираю форму Прих./расх. подробно (граф. форма). Отчет выгружается в Ecxel. Объем данных очень велик. Через n-ое количество времени excel выдает ошибку: "Run-time error 1004: Для предотвращения потери данных Excel не позволяет переместить непустые ячейки за пределы листа. Выберите другое расположение для вставки новых ячеек или удалите данные, находящиеся на краю листа. Если в ячейках, перемещаемых за пределы листа, нет данных, можно изменить набор ячеек, которые считаются непустыми". При этом количество строк в файле excel равно 65536.

Думала, что дело в версии excel, переустановила с 2003 на 2007 - ошибка та же..

Подскажите, что это за ошибка и как можно ее исправить?
Сама я не программист, возможно ли справиться в этим самостоятельно?

Версия Gestori: Релиз 17.00 (обновление 1.18 от 26.07.2013)
 
19.12.2013 14:29  
Mtirt
Меняйте версию Excell дальше, на 2011.
Только в нем отменено ограничение на размер файла в 65536 строк.
 
"Спасибо" Mtirt от:
19.12.2013 15:50  
Yan_Zay
А может быть можно, что-то в текущей сессии исправить? Дело в том, что когда в окне ошибки нажимаю клавишу "Debug"? открывается окно Visual Basic с предложением исправить вот эту строку (выделено цветом):
Sub vv_tab()
Dim i, j, kk

i = n_beg + 1

While Not EOF(1)
Line Input #1, dann$
For kk = 1 To n_hdr
Cells(i, kk + delta) = entry(Val(kk), dann$, ";")
Next
i = i + 1
Cells(i, 1 + delta).Select
Selection.EntireRow.Insert
Wend

n_end = i
If Trim(Cells(i, 1 + delta)) = "" Then
Rows(i).Select
Selection.Delete Shift:=xlUp
Selection.Delete Shift:=xlUp
End If
If Trim(Cells(i - 1, 1 + delta)) = "" Then
Rows(i - 1).Select
Selection.Delete Shift:=xlUp
End If


End Sub
 
19.12.2013 16:18  
OlegON
Правильно, перебор с количеством ячеек.
Сейчас можно только прерывать обработку, например, вставив после i=i+1 строку
if i>65530 then Exit Sub
прошу прощения, если ошибся в синтаксисе, лет 10 на васике ничего не писал... Суть в прекращении работы до ошибки, ошибка не пропадет.
 
"Спасибо" OlegON от:
19.12.2013 16:39  
Mtirt
И что это даст? Если в отчете будет не вся информация, а только её часть?
 
"Спасибо" Mtirt от:
19.12.2013 16:41  
OlegON
Я так понимаю, что ТС хочет, чтобы хотя бы часть данных пошло в дальнейшую обработку, а не рвалось только на создании листа.
 
"Спасибо" OlegON от:
19.12.2013 16:43  
Yan_Zay
В инете нашла, что 2011 версия для системы MAC.
С XP она, выходит, не совместима?
 
19.12.2013 16:45  
Yan_Zay
OlegON, я правильно понимаю, что если пойти по Вашему пути, то следующая часть данных после 65536 строки пойдет в новый документ/лист?
 
19.12.2013 16:45  
OlegON
Офис 2010 попробуйте, вроде бы как в нем тоже нет лимита, а на 2003 он точно работает, должен и на ХР.
 
19.12.2013 16:46  
OlegON
Цитата:
Сообщение от Yan_Zay
OlegON, я правильно понимаю, что если пойти по Вашему пути, то следующая часть данных после 65536 строки пойдет в новый документ/лист?
Неправильно. Просто прервется. Для нового листа Вам придется подольше покорпеть над кодом, не оправдывая собственную лень тезисом "я не программист". Я тоже не программист.
 
"Спасибо" OlegON от:
 


Опции темы



Часовой пояс GMT +3, время: 03:54.

Все в прочитанное - Календарь - RSS - - Карта - Вверх 👫 Яндекс.Метрика
Форум сделан на основе vBulletin®
Copyright ©2000 - 2016, Jelsoft Enterprises Ltd. Перевод: zCarot и OlegON
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.