1

У меня есть рабочая книга (Req_PO_Log_V2.xls), в которой есть все расходы на ремонт и техническое обслуживание из нашего текущего финансового года. Выкладка выглядит следующим образом:

| Date | Req Number | Acct | Vendor # | Vendor Name | Description | Cost |

Данные, которые мне нужно разбить на более мелкие листы, - это столбец Учетная запись (Acct).

тестовое задание

Конечным результатом будет несколько рабочих листов с целыми рядами информации, относящейся к каждому отдельному названию действия (R & M, Op Sup, Well R & M и т.д.), Которые будут обновляться каждый раз, когда я ввожу новую информацию или с помощью кнопки, запущенной сценарий. Желательно все в одной книге.

Я пробовал другой код, который я нашел на этом сайте, но получаю экземпляры нескольких рабочих книг, созданные только с двумя или тремя строками для каждой учетной записи (электронная таблица имеет несколько сотен строк), а затем меня спрашивают, не хочу ли я перезаписать книгу, которая был создан.

Я немного знаю, как работает VB, достаточно для редактирования существующего кода, но не для написания собственного. Любая помощь будет принята с благодарностью.

1 ответ1

0

Решение на основе формул будет трудно реализовать / отладить, склонно к ошибкам и значительно увеличит размер файла. Процедура VBA может быть разбита на этапы:

  1. Удалите все листы, созданные во время последнего запуска макроса (это проще всего, если показанный вами журнал является единственным листом в рабочей книге, но вы можете настроить его на что угодно)
  2. Получите уникальный список имен Acct (это можно сделать, просматривая все используемые ячейки в столбце и добавляя новые элементы в список или используя более изящные средства)
  3. Добавить новый лист для каждого Acct (достаточно просто с Worksheets.Add(name))
  4. Для каждого имени Acct отфильтруйте исходный лист
  5. Скопируйте все ячейки и вставьте в ячейку A1 на соответствующем листе.

Я могу расширить эти разделы, если это необходимо, но мне бы хотелось, чтобы вы взломали их. Может быть проще найти решения для каждой части самостоятельно, а не целиком за один раз. Используйте макрос-рекордер или веб-поиск, чтобы собрать его воедино.

Возьмите трещину и вернитесь с меньшими вопросами и доказательствами того, что у вас есть до сих пор.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .