1с7: Как делается перебор строк в файле Excel? #14942


#0 by Tren
Нужно открыть файл EXcel, просмотреть все его страницы, все строки,  и все ячейки для поиска некоторого значения. Пустяковый вопрос: как сделать цикл по строкам и ячейкам? По листам просто - от 1 до Excel.WorkSheets.Count, а как в Excelе задается количество непустых строк на каждом листе и количество непустых ячеек в каждой строке? Лист.Count не проходит, говорит "Поле агрегатного объекта не обнаружено".
#1 by kadr
Попробуй метод Selection, т.е что-нибудь вроде Selection.End(xlToRight).Select Но это сработает при условии, что данные у тебя размещены непрерывно
#2 by 427
ехсел - алт-ф11 - и читать, читать....
#3 by Tren
Нет, в файле есть и пустые ячейки, и заполненные - перемешаны. Нажал. Вылезло окно с заголовком - "Project- VBAProject". В нем структура файла, который я пытаюсь читать.  Внизу окошко свойств каждого листа. Ну и что там читать?
#4 by 427
а дальше давишь Ф1....
#6 by Tren
А что такое xlLastCell? Компилятор 1С это не пропускает, говорит, переменная не определена. Если ее определить, Microsoft Excel дает ошибку: Невозможно получить свойство SpecialCells класса Range
#7 by alvandael
У меня был вариант цикл до 10 подряд пустых значений :) Но это было обусловлено самими данными, т.е. больше 3-х пустых подряд быть не могло :) 10 - это с перестраховкой.
#8 by alvandael
Надо так: ActiveSheet.Cells.SpecialCells(xlCellTypeLastCell).Activate
#9 by alvandael
Кстати когда дела - этого не знал :)
#10 by Tren
Тот же результат, что и с xlLastCell - Компилятор 1С это не пропускает, говорит, переменная не определена. Если ее определить, Microsoft Excel дает ошибку: Невозможно получить свойство SpecialCells класса Range. Почитал. Все равно не понял, что я должен написать как границу цикла. :(
#11 by NastyFrog
Const xlCellTypeLastCell = 11
#12 by NastyFrog
Можно Лист.Cells.SpecialCells.Address разобрать, получишь и колонку и строку
#13 by NastyFrog
Со всякими методами, пропертями и функциями екселя лучше разобратся как в говорят, модуль вставь, там потренируйся, а потом с 1С отсовокуплять
#14 by Nite
А номер строки и номер колонки можно попробовать получить с помощью функции где используется activerange или workrange. Уже не помню как точно называется. Суть этого метода в том, что он возвращает только рабочий range, т.е. всю область где есть(набиты) какие-либо данные. Можно самому написать функции в экселе и потом вызывать их из 1С. У меня где-то была похожая обработка. Про xlLastCell. См. версию VBA. До 97 офиса нет такой. А вообще есть позитивная обработка для 7-ки :) Которая загрузит Тебе даныые из экселя :)
#15 by 427
в 97 немного другие вызовы - есть такое свинство...
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям