Имя: Пароль:
1C
1С v8
Поиск на листе Excel
,
0 yabes
 
03.07.12
16:52
Здравствуйте!
Мне необходимо заполнить таблицу Excel. Строку я нахожу по коду подразделения (во втором столбце):
Стр = Лист.Range("b1:b500").find(Выборка.Код, Лист.Range("b1"), -4163, 1, 2).Row;

Когда строка найдена - все отлично! если же строка не найдены по подразделению, то выдается ошибка:
{Форма.Форма.Форма(128)}: Значение не является значением объектного типа (Row)

Как решить эту проблему?
1 andrewks
 
03.07.12
16:54
открой для себя adodb RecordSet
2 yabes
 
03.07.12
16:58
(1) а есть пример как с этим работать в 1С?
3 andrewks
 
03.07.12
17:00
4 yabes
 
03.07.12
17:00
Ну а как мой код поправить, чтобы заработало?
5 andrewks
 
03.07.12
17:02
Стр=Лист.Range("b1:b500").find(Выборка.Код, Лист.Range("b1"), -4163, 1, 2);
Если (ТипЗнч(Стр)<>"посмотри, что там, когда не нашлось значение") Тогда
Стр.Row
6 yabes
 
03.07.12
17:04
(5) Ошибка возникает в момент выполнения этой строки! Т.е. присваивание не успевает срабатывать!
7 andrewks
 
03.07.12
17:05
(6) чё-то ты недоговариваешь
8 yabes
 
03.07.12
17:10
(7) Если найдено, то все работает! Если не найдено, то возникает ошибка на момент выполнения строки до присвоения! Придется Попытку - Исключение использовать походу!
9 yabes
 
03.07.12
17:11
(8) во время выполнения строки с присвоением*
10 Jaap Vduul
 
03.07.12
17:14
ЧтоТоНашлось = Лист.Range("b1:b500").find(Выборка.Код, Лист.Range("b1"), -4163, 1, 2);
Если ЧтоТоНашлось <> Неопределено ...
11 yabes
 
03.07.12
17:17
(10) Я же говорю, что ошибка происходит в этой строке! Она не выполняется, если значение не найдено!
12 Jaap Vduul
 
03.07.12
18:06
(11)У меня в примере другая строка.
13 yabes
 
04.07.12
10:34
(5),(12) На свежую голову сразу понял в чем проблема! Спасибо за подсказку! Я вчера так и не понял, что вы имели ввиду, что Row надо использовать только если значение найдено!) Спасибо!)