Excel - Автогенератор рабочего листа

Excel - удобный инструмент для обработки чисел и представления данных. В сочетании с VBA оно становится высокодинамичным приложением, которое можно настраивать для бесчисленных сценариев. Одним из таких примеров является случай, когда можно создать автогенератор рабочих листов, который будет генерироваться каждый раз, когда запись добавляется или удаляется из основного списка . Код VBA работает таким образом, что автогенератор ищет имена в мастер-листе и перемещается по всем листам в рабочей книге. В случае соответствия заранее заданным критериям, он может добавлять или удалять таблицы на основе ввода пользователя .

  • вопрос
  • Решение
  • Заметка

вопрос

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

Решение

Я понятия не имею, как выглядит ваше имя и шаблон

Сделайте резервную копию вашего файла

Прочитайте код и внесите соответствующие изменения, я все закомментировал для вас.

  • Нажмите ALT + F11, чтобы открыть vbe
  • Нажмите на Вставить, и выберите модуль
  • Скопируйте и вставьте код ниже:

 Sub generateTimeSheets () Dim sMasterNameSheet As String 'имя листа, содержащего информацию о сотруднике Dim sTimeSheetTempate As String' имя листа, являющегося шаблоном таймкарты Dim iMaxNameCol As Integer 'номер столбца, под которым находятся наиболее заполненные строки Dim lMaxNameRow As Integer Dim sTemp As String 'временная переменная Dim vWarning As Variant' предупреждение об удалении '######################################### ################### НАСТРАИВАЙТЕ ЗДЕСЬ, ЧТОБЫ СООТВЕТСТВОВАТЬ ВАШИМ ТРЕБОВАНИЯМ ############################### ############################ sMasterNameSheet = "Names" 'это имя листа с информацией о сотруднике sTimeSheetTempate = "Шаблон расписания «это имя листа, который является шаблоном расписания Dim iNameCol As Integer», столбец которого в информационном листе сотрудника содержит информацию об имени (добавьте аналогичные другие столбцы) Dim sEmpName As String «имя сотрудника iMaxNameCol = 1» в этом столбце В списке сотрудников максимальное количество строк заполнено в iNameCol = 1 ', это столбец, где oyee name найдено vWarning = MsgBox («Это удалит все листы, кроме« _ & sMasterNameSheet & »и« & sTimeSheetTempate _ & ». Нажмите «Да» для продолжения «, vbCritical + vbDefaultButton2 + vbYesNo)» не хотите продолжать, если vWarning vbYes Затем выйдите из «Sub», чтобы удалить все, кроме двух листов, «переместитесь через все листы в книге» Для каждого листа «Листы», рассматриваемого в loop sTemp = mysheet.Name ', если проверка листа не является двумя критическими листами, затем удалите его If ((UCase (Trim (sTemp)) UCase (Trim (sMasterNameSheet))) И _ (UCase (Trim (sTemp)) UCase (Trim ( sTimeSheetTempate)))) Затем mysheet.Delete End If Next Sheets (sMasterNameSheet) .Select 'выяснить максимальное количество строк sEmpName = Cells (lThisRow, iNameCol) sEmpName = Trim (sEmpName) If (sEmpName "") Тогда Sheets (sTimeSheetTempate) .Select Sheets (sTimeSheetTempate) .Copy After: = Sheets (sTemp) ActiveSheet.NameT hereSameNameTemp same sName = Вы должны внести исправления "в этой строке образца говорится, что в только что скопированном шаблоне в ячейке A1" введите значение найдено в столбце A ведомостей листов сотрудников (sEmpName) .Range ("A1") = Sheets (sMasterNameSheet) .Range ("A" & lThisRow) End If nextFor: Next End Sub 
  • 4. Нажмите F5, чтобы запустить его

Заметка

Спасибо rizvisa1 за этот совет на форуме.

Предыдущая статья Следующая статья

Лучшие советы