Имя: Пароль:
1C
1С v8
Excel функция find()
0 yabodr
 
24.08.12
18:30
Не могу понять почему функция отрабатывает только один раз, т.е. первый раз находит, что надо а второй нет....


НСтрока = Sheet.Columns(4).Find(Формат(Выборка.Период,"ЧЦ=2; ЧВН=; ДФ=dd.MM.yyyy"));
НОбласть = Sheet.Range(Sheet.Cells.Item(НайденнаяСтрока.row,4), Sheet.Cells.Item(НайденнаяСтрока.row,28));
НОбласть.Cells(1,1).Value  = Выборка.Период;

Первый проход цикла:  находит значение даты на листе, второй проход: другая дата не находится, хотя она там точно есть.

То ли после первого поиска область выделяется и второй раз ищется уже в ней (тогда как снять выделение), то ли ещё что-то...

Хелп!
Заранее благодарен.
1 Жан Пердежон
 
24.08.12
18:35
цикл говоришь...
2 yabodr
 
24.08.12
18:37
Да, цикл.
В зависимости от даты в выборке заполняю определенную ячейку определенного листа книги Excel.
Так нельзя?
3 smaharbA
 
24.08.12
18:38
ф1
4 yabodr
 
25.08.12
09:36
Заклинанье "ф1" пробовал, не разобрался, также пробовал заклинание "гуглить" - также безрезультатно.

Помогите, а я волшебное слово знаю - пожалуйста!
5 andrewks
 
25.08.12
10:09
и где цикл?
6 andrewks
 
25.08.12
10:18
я бы сразу взял Range, и уже к нему бы применил Replace
7 yabodr
 
25.08.12
10:20
Мне бы find освоить ....
8 andrewks
 
25.08.12
10:22
(7) нафига тебе файнд, когда тебе нужен риплэйс?
9 andrewks
 
25.08.12
10:23
10 comp2006
 
25.08.12
10:29
Function Find(What, [After], [LookIn], [LookAt], [SearchOrder], [SearchDirection As XlSearchDirection = xlNext], [MatchCase], [MatchByte], [SearchFormat]) As Range

what = что искать
after = левая верхняя ячейка начала поиска в указанном диапазоне
lookin = искать в формулах или в значениях
lookat = совпадения поиска точное или частичное
SearchOrder = поиск по строкам или по столбцам
SearchDirectiоn = направление поиска
MatchCase = учитывать регистр букв
SearchFormat = формат поиска
11 yabodr
 
25.08.12
10:43
(8) У меня алгоритм следующий:
1.) Ищется строка, содержащая дату
2.) В найденной строке проставляются в определенные колонки значения.
Немного изменю фрагмент кода, чтоб не вводить в заблуждение:
НСтр = Sheet.Columns(4).Find(Формат(Выборка.Период,"ЧЦ=2; ЧВН=; ДФ=dd.MM.yyyy"));
НОбл = Sheet.Range(Sheet.Cells.Item(НСтр.row,4), Sheet.Cells.Item(НСтр.row,28));
НОбл.Cells(1,3).Value  = Выборка.СуммаПродаж;
НОбл.Cells(1,4).Value  = Выборка.СуммаДЗ;
НОбл.Cells(1,5).Value  = Выборка.СуммаОплат;
и т.д.

(10) Вываливается ошибка, когда я передаю в Find больше одного параметра ...
12 comp2006
 
25.08.12
11:17
(11)>Вываливается ошибка, когда я передаю в Find больше одного параметра ...

1. Параметры пропускать нельзя
2. Вместо передачи символьных параметров нужно использовать числовые константы.
Например:
Параметр LookIn может принимать значения:

xlComments
xlFormulas
xlValues

Из 1С надо передавать, соответственно:
-4144
-4123
-4163
13 yabodr
 
25.08.12
12:11
(12) Чесслово, пробовал
14 yabodr
 
25.08.12
21:39
up
15 yabodr
 
27.08.12
09:19
апну ещё разок ...
16 yabodr
 
27.08.12
10:18
Не оставьте в неведении, пожалуйста!!!
17 Жан Пердежон
 
27.08.12
10:33
сделай по-другому: в запрос тяни часть таблицы excel, а из запроса получишь уже номер строки
18 yabodr
 
27.08.12
10:47
(17) что-то это как-то сложновато, по-моему.
Пример кода ради интересе бы глянул, но хотел бы с find()'ом разобраться
19 yabodr
 
27.08.12
11:55
Не сочтите за назойливость, но проблему пока решить не удается...
Спасибо