Страницы: 1
RSS
Своя обработка для любых файлов excel. Как делать?
 
Интересует следующий вопрос. Стороннее ПО успешно каждый раз успешно генерирует файл.xls. Но само по себе представление данных в этом файле немного коробит. А чтобы все было как надо - нужно его немного обработать. Ок, я знаю как написать обработку макросом, и т.д. Но этот макрос же сохраняется непосредственно в этом файле. А он у меня генерируется каждый раз новый. Вот и вопрос: Как мне сделать, чтобы использовать мою обработку для любого файла, причем, чтобы это "подключение" не было шипко долго в процессе?
То есть как я понимаю, что нужно допиливать не файл, а непосредственно сам эксель моей обработкой, но что и куда тыкать - подскажите, направьте.
 
Цитата
Zaxvatov написал:
что нужно допиливать не файл, а непосредственно сам эксель моей обработкой,
Это будет сильно. Допилить Excel через VBA :-)
По вопросам из тем форума, личку не читаю.
 
Вам нужно сделать надстройку Excel (расширение xlam). Из нее макросы будут доступны для любого файла.
 
Спасибо. Значит буду копать xlam.
 
Вариант 1: создаёте папку, куда всё время будет помещаться файл, который нужно обработать. Создаёте макрос в отдельной книге, помещаете его в ту же папку. В папке ВСЕГДА только два файла. Далее примитивный цикл перебора файлов: если имя файла не совпадает с именем файла с макросом, то открываете его и обрабатываете.
Вариант 2: Создаёте макрос в отдельной книге, в нём вызываете диалоговое окно выбора нужного файла, открываете его и обрабатываете.
 
Ну да, любой макрос или надстройку можно при желании рассматривать как "допиливание" Excel....
По сути вопрос не совсем понятен. А чем не устраивает обычный запуск любого макроса при открытой нужной книге? Ведь, например, Range("A1")=1 вставит цифру 1 в активную в данный момент книгу.
 
Цитата
Zaxvatov написал:
макрос же сохраняется непосредственно в этом файле
Создайте так называемый "макросный" файл с Вашим макросом, читайте в него на лист Ваш файл-экспорт: и никаких проблем!  :D  
 
Цитата
Zaxvatov написал: Как мне сделать, чтобы использовать мою обработку для любого файла,
Разместит макрос в личной книге макросов. Открываете книгу для обработки, запускаете макрос сочетанием клавиш.
 
Цитата
Zaxvatov написал:
Как мне сделать, чтобы использовать мою обработку для любого файла
- просто выполнить её для любого другого файла :)
Но конечно есть возможность,что макрос написан так, что будет обрабатывать только один определённый лист определённого файла - но это частный случай. А вообще макрос из любого стандартного модуля любой книги может обрабатывать любую другую книгу.
 
Цитата
Hugo написал:
А вообще макрос из любого стандартного модуля любой книги может обрабатывать любую другую книгу.
На сколько я понял, в таком случае у меня должно быть открыто 2 файла: сгенерированный ПО, и мой, где написана обработка? В моем случае можно просто содержимое скопировать себе и все. Идея именно в том, чтобы открыть сгенерированный файл, нажать хоткей и получить результат.
 
Да, должен быть открыт файл с макросом, а как иначе? И этот файл может быть или обычным другим файлом, или персональной книгой (которую не видно), или надстройкой.
Хотя можно и иначе - пишите скрипт в файле vbs (в целом почти тот же VBA код), далее остаётся его выполнить даблкликом например. А там уже смотря как и что напишите в коде.
 
Цитата
Zaxvatov написал:
Идея именно в том, чтобы открыть сгенерированный файл, нажать хоткей и получить результат.
Цитата
vikttur написал:
Разместить макрос в личной книге макросов. Открываете книгу для обработки, запускаете макрос сочетанием клавиш.
 
Где Ваш файл-экспорт и Ваша "хотелка"?  ;)  
 
я. обычно, в такой ситуации называю макрос
Код
Sub ОбработкаЛюбогоФайла()
...
End Sub
и тогда он самомстоятельно обрабатывает любые файлы и выдает при этом любые результаты.
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
Страницы: 1
Наверх