#0
by uwscsi
Такая получилась загвоздка: Надо из 1С в таблице Excel найти ячейку со значением. Взаимодействую с Excel через OLE. Что получилось- есть у Excel метод Find- очень шустро но из 1с- так и не получилось заставить его искать полную строчку ------------------------------------------------- ЭлТ="Smtn..." -------------------------------------------------- Такая конструкция ищет в экселе все ячейки, куда входит искомая подстрока... Если смотреть на синтаксис VB в Excel, то там работает строчка: Но при попытке это впихнуть в 1с в любом виде начинается ругань... Кто-нить знает, как заставить работать метод из 1С с поиском по полному соответствию? Пробовал ещё один вариант- из 1С создать макрос непосредственно в Excel и запускать уже не метод, а макрос, но по первой же попытке обратиться к VB Excel из 1С vbc=Xls.vbe.ActiveVBProject.VBComponents; был получен отлуп: "Microsoft Office Excel: Программный доступ к проекту Visual Basic не является доверенным" В общем спасибо заранее за любые идеи по этому поводу.
#3
by asady
можно включить доступ: понизить уровень безопасности: Сервис-Параметры-Безопасность. Это позволит записать и выполнить макрос. Но ИМХО можно сделать это скриптом.
#7
by uwscsi
- Спасибо, про этот вариант в курсе, просто хотелось одной командой получить результат, наверно придётся действовать таким образом. (3,4)- Попробовал, работает однако, но не до конца, или я что-то не понимаю... В переменную "res" возвращается -1, что указывает на успешное завершение функции, но при попытке получить адрес найденной ячейки- ничего не получается- адрес её всегда равено "$1$A1"... Получаю таким образом: Или там какой-то другой хитрый метод получения значений полей объектов должен быть? - а что такое в MSScript control плохого? Почему его не стоит пользовать?
#8
by asady
скрипт работает так как ты просил если теперь хочешь получить адрес, то достаточно Строки Сообщить("Адрес="+Application.ActiveCell.Address);
#9
by asady
в имелось ввиду наверное то, что поиск в отмеченной области не есть хорошо. И с этим я могу согласиться. ИМХО такой поиск надо делать независимо от Selection. Но методика остается примерно такой-же.
#10
by uwscsi
В том-то и дело, что не работает:( Может я что не понимаю но код: Строчка (a) возвращает -1, что казывает, что элемент найден, При этом элемент "а" находится в ячейке по адресу $B$2 В общем я наверо что-то не понимаю...
#12
by uwscsi
И в этом варианте в adr возвращается $A$1 :( Мистика какая-то. Что интересно- в Excel- указатель не перемещается на найденную ячейку...
#14
by uwscsi
Чёрт, а у меня не пашет. Проверил вплоть до последней буквы... Нагло так с издёвкой в Res.Address помещается значение $A$1 Всё. Делаю по методу . Всем спасибо!
#15
by asady
Есть особенность: Цифири так ищет легко. А вот строки не ищет совсем. Похоже строка в Экселе целиком не совпадает со строкой в 1С. Эксель видимо какой-то служебный символ в конец строки пихает. Поэтому поиск по полному соответствию не пашет.
#18
by asady
через FindNext перебором по частичным вхождениям и дурак найдет. Вопрос в сабже был поставлен конкретно: найти строку по полному соответсвию одной командой Find как это реализовано в Экселе. вот переделал без Селекта, но и так не рулит... но грабли в том, что поиск по полному (подчеркнуто именно полному) соответсвию никак не рулит из 1Сины.
#19
by Рупор2
Чем плох тот код, который доступен даже дураку и при этом работает ни чуть не медленнее кода, доступного только гениям?
#21
by Рупор2
Вот и показал бы челу, как найти нужную строчку в эксель однострочной командой, вместо того чтоб два дня парить мозги себе и окружающим ...
#23
by mx-daemon
Была у меня хорошая книжка MS - пресс и называлась программирование VBA. Девушке подарил её. К чему, да вот там было ну просто разжевано как извне искать и т.п. И еще: метод Find возвращает объект типа Range (диапазон) и вовсе не факт, что это именно одна ячейка.
#25
by mx-daemon
Нормально ищет строки. Впрочем, легко проверить - сначала записать в ячейку, а потом искать методом Find
#26
by uwscsi
--------------------------------------- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Вот только если бы работала такая конструкция. У меня она выдаёт ошибку, как только пытаешься внести ещё хоть какие нить параметры на вход метода Find после искомой строки.
#27
by Рупор2
НомерСтроки=Эксель.WorksheetFunction.Match("цу",Эксель.Columns(НомерКолонкиВКоторойСледуетИскать),0);
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям
Похожие вопросы 1С
- DDE, Excel, как передать значение ячейки Excel в 1С
- Стандартные функции Excel из 1С (поиск значения в файле)
- Поиск нужного значение в листе Excel при загрузке документов из Excel в 1С
- Как отключить макросы в Excel - нужно для загрузки данных из файла excel
- Можно ли как-то использовать Excel.Application без установки Excel
- По умолчанию при нажатии Ctrl-F поиск настроен на поиск по текущей колонке
- Как создать Новый COMОбъект("Excel.Application") без установленного Excel?
- В Проводнике не работает Поиск!?! при нажатии на Поиск процесс зависает, справа как
- ProgID класса COM "Excel.Sheet" и "Excel.Application"
- Что быстрее? Поиск в таблице значений, соответствии или прямой поиск в базе?
- Как пересохранить из нового Excel в старый Excel ?
- Поиск в УФ как програмно отключить поиск?
В этой группе 1С
- Выделение нескольких слов в ячейке жирным при печати?
- Как программно узнать что справочник подчиненный
- Материальный отчет МХ-20
- Как проверить наличие ссылок на объект?
- Программно получить период журналов документов
- Как выгрузить план счетов
- v7: Как сделать значения субконто одного счета, значениями субконто второго?
- JavaScript: как поставить курсор в конец...
- Программное добавление командной панели
- Использование значения ВидДвиженияНакопления.Приход в тексте запроса
- Как вы думаете почему в УПП нет управленческого плана счетов?
- Срез последних: почему не последнее?
- УПП и Excel - стиль ссылок R1C1
- Как написать 0 прописью?
- Работа с почтой. Как удалить письма с сервера?
- В своде начислений показывает долг за работником
- проводки есть, но в ОСВ по счету не попадают...
- УСН: Книга учета доходов и расходов - сумма не попадает в расходы учитываемые
- ПУБ: ОСВ по 62 счету - остается сальдо на 62.1 и 62.2
- Программная печать в файл