Форум OlegON > Ресурсы OlegON > Вопросы сервера > Архив > Gestori

Выгрузка в Excel отчета Списание : Gestori

28.03.2024 14:19


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 строк.
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 на васике ничего не писал... Суть в прекращении работы до ошибки, ошибка не пропадет.
19.12.2013 16:39
Mtirt
 
И что это даст? Если в отчете будет не вся информация, а только её часть?
19.12.2013 16:41
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 строки пойдет в новый документ/лист?
Неправильно. Просто прервется. Для нового листа Вам придется подольше покорпеть над кодом, не оправдывая собственную лень тезисом "я не программист". Я тоже не программист.
Часовой пояс GMT +3, время: 14:19.

Форум на базе vBulletin®
Copyright © Jelsoft Enterprises Ltd.
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.