автоматизация Excel - Range.RemoveDuplicates Method | |
---|---|
sb69 Автор Сообщений: 22 Дата регистрации: 23.06.2018 |
Нужно из FoxPro удалить дубликаты в книге Эксель.
Макрос получается такой: ActiveSheet.Range("A1:C3").RemoveDuplicates Columns:=Array(1,2,3), Header:=xlYes Как это написать в Фоксе? Cделал (методом тыка) так: ActiveSheet.Range("A1:C3").RemoveDuplicates("Array(1,2,3)","xlYes") Выдает ошибку: Ошибка OLE.Код … Type Mismatch Я так понимаю, перечень столбцов должен как-то по другому передаваться ... |
Re: автоматизация Excel - Range.RemoveDuplicates Method | |
---|---|
AndyNigmatec Сообщений: 1552 Откуда: Волгоград Дата регистрации: 28.06.2015 |
для начала - константы берем из excel.h (прикрепил к сообщению)
во-вторых - смотрим вызов автоматизации excel из фокса, тупой как валенок пример
вкратце так ))) насчет - RemoveDuplicates(...) - -я такой метод не юзал, смущает параметр передаваемый как массив ... Исправлено 3 раз(а). Последнее : AndyNigmatec, 23.06.18 23:12 |
Re: автоматизация Excel - Range.RemoveDuplicates Method | |
---|---|
sb69 Автор Сообщений: 22 Дата регистрации: 23.06.2018 |
спасибо, подключил, заменил xlYes на 1 … не помогло
код у меня такой
Исправлено 1 раз(а). Последнее : sb69, 23.06.18 23:14 |
Re: автоматизация Excel - Range.RemoveDuplicates Method | |
---|---|
AndyNigmatec Сообщений: 1552 Откуда: Волгоград Дата регистрации: 28.06.2015 |
конечно не помогло, это ж тока начало ))) - теперь разобраться что передать параметром в RemoveDuplicates
|
Re: автоматизация Excel - Range.RemoveDuplicates Method | |
---|---|
AndyNigmatec Сообщений: 1552 Откуда: Волгоград Дата регистрации: 28.06.2015 |
навскидку - msdn.microsoft.com
|
Re: автоматизация Excel - Range.RemoveDuplicates Method | |
---|---|
sb69 Автор Сообщений: 22 Дата регистрации: 23.06.2018 |
не сразу пример, кода увидел, сорри …
Я не могу понять как передать список колонок в VBA - это параметр "Columns" ActiveSheet.Range("A1:AM100").RemoveDuplicates Columns:=Array(1,2), Header:=xlYes |
Re: автоматизация Excel - Range.RemoveDuplicates Method | |
---|---|
Igor Korolyov Сообщений: 34580 Дата регистрации: 28.05.2002 |
Создать массив (фоксовый), заполнить. Передать по ссылке, т.е. @имя_массива
"Array(1,2,3)" это строка, с чего бы это экселю её понимать не как строку? Конкретно с RemoveDuplicates я не работал, а для сводных таблиц, где тоже нужны параметры-массивы, всё проходит. Константы, естественно, тоже надо передавать в виде их значений, а не имён в кавычках. Не нужно прямо по коду "заменять" их - достаточно подключить через #include excel.h файл c ними (для форм.классов чуть сложнее - там в меню Form/Class есть пункт для подключения h-файлов), и тогда можно писать их имена в параметрах, да и просто там где нужны сами значения (естественно без кавычек). ------------------ WBR, Igor |
Re: автоматизация Excel - Range.RemoveDuplicates Method | |
---|---|
sb69 Автор Сообщений: 22 Дата регистрации: 23.06.2018 |
Игорь, спасибо.
excel.h подключил на форме с этим всё ок. С передачей списка столбцов по прежнему проблема
в руководстве по vba указано что должен быть тип = Variant ... msdn.microsoft.com Исправлено 1 раз(а). Последнее : sb69, 24.06.18 16:14 |
Re: автоматизация Excel - Range.RemoveDuplicates Method | |
---|---|
Igor Korolyov Сообщений: 34580 Дата регистрации: 28.05.2002 |
Видимо не судьба с этим методом поработать из фокса... Сделай макрос и его уже вызывай, там то не проблема в синтаксисе VBA всё прописать.
------------------ WBR, Igor |
Re: автоматизация Excel - Range.RemoveDuplicates Method | |
---|---|
sb69 Автор Сообщений: 22 Дата регистрации: 23.06.2018 |
ок, спасибо.
|
Re: автоматизация Excel - Range.RemoveDuplicates Method | |
---|---|
Igor Korolyov Сообщений: 34580 Дата регистрации: 28.05.2002 |
Кстати, для какой цели вообще такую функцию из фокса над экселем проводить? Обычно из фокса либо формируют выходные документы - так там не проблема ПЕРЕД выгрузкой сгруппировать, либо загружают данные - и там, опять же, не проблема после приёма всего массива выкинуть "лишние" записи - всё одно требуется постобработка, как ты не "готовь" исходный эксель
------------------ WBR, Igor |
Re: автоматизация Excel - Range.RemoveDuplicates Method | |
---|---|
sb69 Автор Сообщений: 22 Дата регистрации: 23.06.2018 |
всё банально
Ежедневно делаю два десятка маркетинговых отчетов на основании данных из интернета. Полученные данные нужно "немного обрабатывать" прежде чем разносить по заготовкам. Сейчас делаю в Экселе руками. Исходник приходит в .csv Хочу автоматизировать (глаза стали уставать, да и ускорить немного хочется). Кое-какие правки удобнее делать через базу, чем через ВПР() в Экселе. Когда начинал программистом, последнее на чём писал был FoxPro. Вот и вся логика … Можно конечно и vba поизучать, но времени много надо. |
Re: автоматизация Excel - Range.RemoveDuplicates Method | |
---|---|
AndyNigmatec Сообщений: 1552 Откуда: Волгоград Дата регистрации: 28.06.2015 |
Ну пожалуй да, для таких задачек городить что-то монументальное не имеет смысла - а вот в фоксе курсорами обработать - быстро и незатратно, особенно ежели с фоксом автор знаком )))
|
Re: автоматизация Excel - Range.RemoveDuplicates Method | |
---|---|
sb69 Автор Сообщений: 22 Дата регистрации: 23.06.2018 |
|
Re: автоматизация Excel - Range.RemoveDuplicates Method | |
---|---|
pasha_usue Сообщений: 3647 Откуда: Е-бург Дата регистрации: 06.10.2006 |
Так не взлетает?
Исправлено 1 раз(а). Последнее : pasha_usue, 24.06.18 21:32 |
Re: автоматизация Excel - Range.RemoveDuplicates Method | |
---|---|
sb69 Автор Сообщений: 22 Дата регистрации: 23.06.2018 |
спасибо, но не помогло.
(размерность также менял местами) выдает то же сообщение "OLE ... parameter is incorrect" |
Re: автоматизация Excel - Range.RemoveDuplicates Method | |
---|---|
lulgu Сообщений: 1838 Дата регистрации: 30.11.2016 |
Так не пробовали?
lll = '1,2,3' .RemoveDuplicates(&lll,xlYes) |
Re: автоматизация Excel - Range.RemoveDuplicates Method | |
---|---|
Igor Korolyov Сообщений: 34580 Дата регистрации: 28.05.2002 |
Ну так и флаг в руки Если всё одно забирать в фокс для обработки, то там же и дубликаты вычищать - select f1,f2,f3, min/max/sum/avg(f456) group by f1,f2,f3 - и всего делов Для скорости загрузку/выгрузку делать через массив, поячеечно плохо будет. ------------------ WBR, Igor |
Re: автоматизация Excel - Range.RemoveDuplicates Method | |
---|---|
sb69 Автор Сообщений: 22 Дата регистрации: 23.06.2018 |
не проходит
|
Re: автоматизация Excel - Range.RemoveDuplicates Method | |
---|---|
sb69 Автор Сообщений: 22 Дата регистрации: 23.06.2018 |
|
© 2000-2024 Fox Club  |