Загрузка из Excel: неправильно видит количество строчек в файле #484331


#0 by Старуха Шапокляк
Загружаю данные из файла Excel в 1С. Файл состоит из одной строки. Смотрю через отладчик, т.к. очень долго. в результате вижу, что значение ФайлСтрок = 1184 (в строчке Для а = 2 по ФайлСтрок Цикл). В результате, после первого прохода Цикла, он опять возвращается в начало цикла! Подскажите, почему так происходит и откуда это число 1184? //Номер листа в книге Excel для получения данных
#1 by sapphire
Для особо одаренных Microsoft придумала свойство объекта Worksheet(Лист) с славным именем UsedRange(Используемый диапазон) типа Range(Диапазон или по-одинесному Область)
#2 by Старуха Шапокляк
И как его использовать?
#3 by sapphire
#4 by sapphire
Ну и зачем Excel.Sheets(НомерЛиста).select; ? Можно вот так: Worksheet=Excel.Sheets(НомерЛиста);
#5 by Старуха Шапокляк
, спасибо, но у меня в цикле еще строчки есть, которые я в не указала: Вероятно из-за этого, когда я модифицировала свой код по вашему примеру в , то стал выдавать ошибку еще на этапе синтаксического контроля: {Форма.Форма(121,39)}: Переменная не определена (а) Ключ         = СокрЛП(Excel.Cells(<<?>>а,НомерКолонкиКлюч).Value); {Форма.Форма(132,39)}: Переменная не определена (а) Название       = СокрЛП(Excel.Cells(<<?>>а,НомерКолонкиНазвание).Value); {Форма.Форма(135,39)}: Переменная не определена (а) ИНН            = СокрЛП(Excel.Cells(<<?>>а,НомерКолонкиИНН).Value); {Форма.Форма(138,39)}: Переменная не определена (а) Т.е. сейчас у меня вот такой код (исправленный как в ): //Номер листа в книге Excel для получения данных
#6 by Старуха Шапокляк
В Вы пишите, что надо перебрать строки в используемом диапазоне. А как это сделать? Вероятно, что мой метод не подходит:
#7 by dk
весь код корявый, где брала-то? по usedrange есть ведь примеры. лень в поиск сходить? ...
#8 by Старуха Шапокляк
Выдает ошибку при синтаксич.контроле: {Форма.Форма(121,28)}: Переменная не определена (Лист)        Ключ          = СокрЛП(<<?>>Лист.Cells(Row,НомерКолонкиКлюч).Value); и т.д.
#9 by Старуха Шапокляк
+ Еще выдает ошибку: {Форма.Форма(115,20)}: Переменная не определена (Лист)    For Row = 1 to <<?>>Лист.UsedRange.Rows.Count do
#10 by Старуха Шапокляк
up!
#11 by Boroda
Есть момент:  UsedRange.Rows.Count возвращает количество непустых строк. Т.е если в начале есть пустые строки, то операцией: Для сч=1 по ...UsedRange.Rows.Count Цикл можешь недобрать строк столько, сколько пустых в начале...
#12 by Старуха Шапокляк
Пустых строк впереди - нет. Файл состоит из одной строчки и 20-ти столбцов. Данные начинаются со второй строчки и первого столбца. Но суть в том, что пока даже на этапе СИНТАКСИЧЕСКОГО контроля не прохожу (после того, как текст стал как в ). Хелп!!!
#13 by Старуха Шапокляк
Т.е. мне надо указать, что: Данные располагаются на первом листе книги; Обрабатываемые данные начинаются с первого столбца и со второй строчки.
#14 by Boroda
С 8-кой не работал. но вот для 7-ки один раз нашел и пользуюсь постоянно:
#15 by Старуха Шапокляк
спасибо, но я с 8-кой тоже пока не особо "дружу"...
#16 by Старуха Шапокляк
Ап!
#17 by FN
офф: Если давно пользуешься то поправь: и пропускать пустые строки перестанет
#18 by Старуха Шапокляк
Пробую по другому, в отладчике все равно показывает ВсегоКоличестовСтрок = 1184. Ничего не понимаю, откуда такая цифра??? Вот код: P.S. Может быть у меня структура файла не правильная? Сейчас строчка заполнена вся, но в ней некоторые колонки могут быть пустыми, например КПП - пусто: Ключ   Наименование   ИНН         КПП     ЮрАдрес 10001   ООО Восток    7702158475          г.Ставрополь, ул.Лесная Такой файл пойдет для загрузки из Эксель в 1С, или там хоть что-то должно быть, чтобы не было зацикливания???
#19 by FN
Сделай: Сообщить(ксель.Sheets(ТекНомер).UsedRange.Rows.Count) - если покажет больше чем надо, то открой файлик в Екселе и нажми Ctrl-End - где курсор установится?
#20 by Старуха Шапокляк
Вы были правы: при нажатии Ctrl+End в файле курсор остановился как раз на строчке под этим номером 1184. Из-за чего это происходит и как исправить???
#21 by FN
Физически в файле удали строки с последней заполненной до 1184 и пересохрани файлик.
#22 by Старуха Шапокляк
СПАСИБО! Буду пробовать!!!
#23 by Aswed
В файле нажимаешь Ctrl+End и смотришь куда переходит курсор. Вполне может быть в какой нить ячейке на 1184 строке какие о остаточные данные, не видимые для тебя.
#24 by Ковычки
весь код на помойку
#25 by Ковычки
а форматирование коли нужно тоже удалять и так в 150-и файлах ? пофих, есть правильный метод нахождения последней ячейки
#26 by Ковычки
и это пофих
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С