![]() |
Макрос в эксел или PHP обработчик данных для формата .xls
у меня в экселе таблица, данные, в таком порядке
код - страна - цена http://s46.radikal.ru/i114/0909/76/0aaa96430903.jpg и в поле КОД встречаются поля с одинаковыми кодами, но с разной ценой, надо убрать оттуда одинаковые коды, но чтоб скрипт из двух одинаковых кодов убрал то поле, в котором цена кода выше. За скрипт, макрос, или совет, который мне поможет реализовать данную операцию, готов заплатить. (цена ваша, в разумных пределах) |
максрос:
PHP код:
|
Пашкела, что то он у меня не заработал :rolleyes: , вроде правильно вживил в эксел.
если тебе не сложно, не мог бы ты вживить макрос в эксел:??? :rolleyes: Сам пытался вживить, то ли неправильно прописал, то ли в макросе ошибка проскользнула, не получилось у меня. Вот сам файл в который его надо прописать http://www.filehoster.ru/files/dk2057 Буду очень признателен, в долгу не останусь.:rolleyes: |
Да, вариант выше работал только на маленьком кол-ве записей. Или хз. В общем не стал дожидаться и переписал на более наглядный, невиснущий, позволяющий отследить результаты работы макрос:
PHP код:
типо тут Просто зайти в Сервис->Макрос->Макросы->Макрос1->Выполнить PS: Ждать придется долго, на то оно и vba Если что, пищи:) ------------------ Во время работы макроса лучше ничего не трогать, а тупо наслаждаться результатом |
Цитата:
Чтобы все не висло, считывайте все данные в массив сразу, перед обработкой, потом обрабатывайте массив, потом чистите таблицу и вставляйте все заново на неё. Прирост скорости будет в десятки раз. (Тупит из за доступа к данным в таблице) И ище когда производятся операции в цикле и цикл может быть долгим, вставляйте оператор DoEvents. Это разблокирует интерфейс во время выполения ресурсоемких задач. |
Пашкела, спасибо большое за макрос, только щас появилась возможность проверить, была проблема что макрос удаляет строки где цена ниже, с этим разобрался, заменил символ < в сравнении полей 3 и 4 на символ >.
Но по окончанию процесса выявилась другая проблема. Когда макрос начинает сравнение полей, то полей 12 тысяч (задаются в теле макроса в поле "Номер последней строки в таблице"), после проверки макроса и удаления полей где цена выше, общее количество полей бывает примерно 9500, но тут Макрос зависает, потому что после последней строки под номером 9500, данных для обработки нет, а макрос должен обработать 12 тысяч полей. Можно ли сделать так, чтоб не надо было писать в макрос номер последней строки и он сам останавливался как только закончит обработку последнего поля вне зависимости от его номера??? Если есть возможность, исправь, пожалуйста, буду очень благодарен :rolleyes: |
Одну строчку сам не мог догадаться вставить чтоли?
PHP код:
|
Пашкела, все заработал на отлично. спасибо большое, жду в личку номер вебмани
|
оставь себе на пиво, просто интересно было
|
Цитата:
например http://s57.radikal.ru/i156/0910/66/649cd9638734.jpg Тут нужно, чтоб макрос убрал код 316 и 31612 в первом столбце, который в файле один, и оставил повторяющиеся коды 31 31610 31611 |
Вообще, если не важны формулы, то намного проще экселевский файлик экспортировать в .csv , а дальше над ним можно извращаться практически на любом языке программирования так, как твоей душе угодно...
^^^^^^^^^^^^^^^^^^^^^^^^^ Это написано из-за того, что синтаксис Excel VBA мну раздражает ну прям ужос как |
Цитата:
Кодеры, помогите плиз, кто с макросами разбирается???? Срочняк нужен макрос, оплату гарантирую :rolleyes: |
уже готово, всем спасибо. Если кому надо, выкладываю на всякий случай
Вот весь код: Код:
Sub test()http://excelvba.ru/Screenshots/JPG__...__17-36-18.JPG Отдельное спасибо за макрос EducatedFool |
Не знаю куда написать, нашёл тему по поиску, напишу тут )
В общем у меня есть документ Excel, мне нужно в определённом столбце отобрать те строки, в которых значение больше 0. А которые с 0 удалить... Или сделать, где больше 0 чтобы были вверху, документ большой и искать в какой строке 1, а где 3 ручками не возможно. Как сделать? Хелп |
Данные-фильтр-автофильтр
PS: ппц:) |
| Время: 03:28 |