Имя: Пароль:
1C
1С v8
Туплю с Excel
0 mzelensky
 
07.09.12
09:53
Реально пятничная ветка!
Есть экселевский док. Нужно сделать поиск по листу определенного значения. У меня есть функция, которой я реально уже давно пользуюсь, но сейчас она почему-то не работает:

Эксель.Sheets(1).Range("B1:B1").find("Реквизит.К[",Эксель.Sheets(1).Range("B1"), -4163, 2, 1)

Искомое значение (в тестовом файле) находится во втором столбце, 10 строчке. Полное значение его "Реквизит.К[10909]". Я уже как ток параметры функции не перебирал. Пробовал искать другие значения в другом диапазоне...либо не работает, либо работает как-то криво.
Что за ерунда???
1 vmv
 
07.09.12
09:56
пиши жалобу в MS, так мол и так - я отказываюсь от вашего продукта и подаю в суд, оплата штрафа 5-ти центовыми монетами мне в хлев
2 Мимохожий Однако
 
07.09.12
09:57
В1:В1 - это первая строка во второй колонке?
3 mzelensky
 
07.09.12
09:59
(2) по идее это должна быть вообще ВСЯ вторая колонка.
Но вот так я тоже пробовал: "A1:G500" - результат один.

Мне тут на ум приходит одно подозрение - а это функция ищет точное совпадение или вхождение строки в строку?
4 mzelensky
 
07.09.12
10:00
(1) уже давно объявлили .что эта тема была УТКОЙ, никаких фур с 5-ти центовыми монетами не было!

А теперь давай по теме!
5 Мимохожий Однако
 
07.09.12
10:04
Попробуй В:В
6 Мимохожий Однако
 
07.09.12
10:05
Часто помогает запустить макрос в Экселе и полученный код преобразовать. В разных версиях офиса получаются разные коды иногда
7 mzelensky
 
07.09.12
10:05
(5) уже пробовал. И "B1:B1" и "B0:B0" и "А1:B500"...и еще много чего - нифига!
8 mzelensky
 
07.09.12
10:07
(6) вот макрос:

Sub Макрос1()
'
' Макрос1 Макрос
' Макрос записан 07.09.2012 (Зеленский)
'

'
   Cells.Find(What:="Реквизит.К[", After:=ActiveCell, LookIn:=xlFormulas, _
       LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
       MatchCase:=False, SearchFormat:=False).Activate
End Sub

Но не хочу я макросом это делать. Мне нужно просто функцией. Блин, работало же :(
9 mzelensky
 
07.09.12
10:19
Нашел причину ,почему не происходит поиск...сейчас бы разобраться как избежать этого косяка :(

В общем на листе этот самый параметр, который я ищу, находится в скрытом столбце. Скрывал так:

//Эксель.Sheets(1).Range("1:1").EntireRow.Hidden = True;
//Эксель.Sheets(1).Range("A:B").EntireColumn.Hidden = True;

При этом обычный поиск в экселе все это находит. А вот если из 1С-ки функцию поиска выхывать - ничего не находит. Стоит просто раздвинуть колонки (сделать их видимыми) - поиск сразу отрабатывает!!! Вот такая лажа!!!
10 mzelensky
 
07.09.12
10:39
Еще вопрос: поработал с файлом, хочу его закрыть

Эксель.Application.Quit()

При этом если файл был изменен (а он был), то мне выходит сообщение "Сохранить не сохранить". Как закрыть без этого диалога??? Т.е. типа закрыть без сохранения или что-то типа того!?!?!?
11 Jaffar
 
07.09.12
10:58
12 mzelensky
 
07.09.12
11:26
(11) я вроде сделал чуть проще :)
13 smaharbA
 
07.09.12
11:34
про скрытые не верю
14 vmv
 
07.09.12
11:38
(13) это 1С тупит
Компьютеры — прекрасное средство для решения проблем, которых до их появления не было.