|
v7: Загрузка из файла xls | ☑ | ||
---|---|---|---|---|
0
san4ez1008
31.01.18
✎
09:51
|
Доброго времени суток! Чет сижу уже часа 3,понять не могу ничего, загружаю файлик в ТЗ, если пустая строка-продолжаем цикл, если 2 подряд-прерываем обработку. Спотыкается на пустой строке, говорит номер за пределами значения.. строки не соответствуют или что?
[code] Лист=1; E = СоздатьОбъект("Excel.Application"); E.WorkBooks.Open(ФайлСоотв); Строк=E.Sheets(Лист).Cells.SpecialCells(11).Row; // строка последней ячейки //ТЗ=СоздатьОбъект("ТаблицаЗначений"); ТЗ.НоваяКолонка("ШтрихКод"); ТЗ.НоваяКолонка("ЦЗак"); ТЗ.НоваяКолонка("ЦОпт"); Запомнить=0; Для Стр=1 По Строк Цикл Если ПустоеЗначение(E.Sheets(Лист).Cells(Стр+10,10).Value)=1 тогда Запомнить=Запомнить+1; Если Запомнить>1 тогда Прервать; иначе продолжить; КОнецЕсли; иначе ТЗ.НоваяСтрока(Стр); ТЗ.УстановитьЗначение(Стр,"ШтрихКод",СокрЛП(E.Sheets(Лист).Cells(Стр+10,10).Value)); ТЗ.УстановитьЗначение(Стр,"ЦЗак" ,СокрЛП(E.Sheets(Лист).Cells(Стр+10,12).Value)); ТЗ.УстановитьЗначение(Стр,"ЦОпт" ,СокрЛП(E.Sheets(Лист).Cells(Стр+10,14).Value)); КонецЕсли; КонецЦикла; [/code] |
|||
1
PiterPrg
31.01.18
✎
10:02
|
Что за "ТЗ.НоваяСтрока(Стр)" ?
ТЗ.НоваяСтрока(); ТЗ.УстановитьЗначение(ТЗ.НомерСтроки,"ШтрихКод",СокрЛП(E.Sheets(Лист).Cells(Стр+10,10).Value)); |
|||
2
PiterPrg
31.01.18
✎
10:06
|
(1) Пардон, есть. забыл уже клюшки :-)
Но суть та-же. В ТЗ нет строк с количеством Стр Либо сразу задавай количество строк ТЗ равное "Строк" А потом просто ПолучитьСтрокуПоНомеру, Либо как в (1) |
|||
3
Builder
31.01.18
✎
10:08
|
(0) Сдается мне, цикл прервется на второй пустой строке, даже не подряд.
Ну и где конкретно ошибка то? |
|||
4
Builder
31.01.18
✎
10:09
|
А так что, не модно уже писать?
ТЗ.НоваяСтрока(); ТЗ.ШтрихКод = СокрЛП(ЧтоТоТам); |
|||
5
Builder
31.01.18
✎
10:15
|
(0) В условии Иначе добавь
Запомнить=0; Надо сбросить счетчик. |
|||
6
san4ez1008
31.01.18
✎
10:15
|
(1) во,так сработало..
(3) вы правы,это я не обдумал,надо проверить тогда на пустые строки подряд..как так замоделить? (4) не пробовал еще) |
|||
7
PiterPrg
31.01.18
✎
10:17
|
(3) Ошибка здесь:
ТЗ.УстановитьЗначение(Стр,"ШтрихКод",СокрЛП(E.Sheets(Лист).Cells(Стр+10,10).Value)); Предположим мы одну строку пропустили, например 3-ю И на след. шаге //Стр = 4 ТЗ.НоваяСтрока(Стр); //Стр игнорируется, вставленная строка третья (проверил :-)) В ТЗ 3 строки, Стр = 4, Установить значение вылетает |
|||
8
Builder
31.01.18
✎
10:26
|
(7) Делай как в (4)
|
|||
9
san4ez1008
31.01.18
✎
10:29
|
(8) все получилось,спасибо!
|
|||
10
vladko
31.01.18
✎
10:37
|
а вообще говоря, в 7.7 тоже есть отладчик. И когда им пользуешься, тогда не возникает таких вопросов.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |