VBA Auto Clear / Populate

Я пытаюсь сделать простую в использовании таблицу отслеживания для команды на моем объекте. 5 столбцов, где данные будут введены.

Каждая задача – это собственная строка. Столбцы «Категория» и «МСП» представляют собой выпадающие списки проверки данных.

В настоящее время у меня есть столбец задач в сером цвете, который кажется затухающим, пока не будет введено ничего, кроме словаря; этот авто заполняет дату редактирования строки. Затем пользователь выбирает «Категория», «МСП» и вводит «Часы».

Когда задача будет очищена, она автоматически заполнит задачу слова и снова применит серое раскрашивание, а также очистит всю другую информацию в этой строке. Проблема, с которой я сталкиваюсь, заключается в том, что мне нужно включить 500 рядов задач, потому что каждый лист является ежемесячным. Эти листы также должны автоматически запускать VBA; нет выбора или инициирования макросов – мои люди этого не понимают. То, что я знаю, имеет популяцию даты как общее применение, но все остальное по линии, и Excel говорит, что моя процедура слишком длинная. Пожалуйста помоги.

TLDR: Мне нужна помощь в консолидации моего кода, чтобы быть уникальным для строки, выполняя все мои действия по заполнению и удалению.

Private Sub Worksheet_Change(ByVal Target As Range) ' ////////////////////General Actions//////////////////// Dim A As Range, B As Range, Inte As Range, r As Range Set A = Range("B:B") Set Inte = Intersect(A, Target) If Inte Is Nothing Then Exit Sub Application.EnableEvents = False For Each r In Inte r.Offset(0, 3).Value = Date Next r Application.EnableEvents = True ' ////////////////////General Actions//////////////////// ' ////////////////////Row 6//////////////////// If InStr(1, ActiveSheet.Range("B6").Value, "Task") > 0 Then Range("B6").Font.Color = RGB(161, 161, 161) Else Range("B6").Font.Color = vbBlack End If If Not Intersect(Target, Range("B6")) Is Nothing Then If Range("B6").Value = "" Then Range("B6").Value = "Task" End If End If If Not Intersect(Target, Range("B6")) Is Nothing Then If Range("B6").Value = "Task" Then Range("F6").Value = "" End If End If If Not Intersect(Target, Range("B6")) Is Nothing Then If Range("B6").Value = "Task" Then Range("E6").Value = "" End If End If If Not Intersect(Target, Range("B6")) Is Nothing Then If Range("B6").Value = "Task" Then Range("C6").Value = "Please select…" End If End If ' ////////////////////Row 6//////////////////// 

Interesting Posts

Как вы зависите от сценариев тестирования UFT с файлами Excel из ALM?

Код VBA для одиночного фильтра в сводной таблице

таблица / VBA для расчета многоуровневого маркетингового дохода

Почему я не могу использовать «Если листы (« имя рабочего листа »)« Нет »« проверить, существует ли рабочий лист в Excel VBA

Как найти определенную строку в 1 или 2 листах файла excel с помощью Apache POI?

Изменение Excel 2016

Excel Выберите все элементы в списке Vba

Экспортировать различные листы в один файл Excel в разные pdf-файлы?

Ошибка 9 Форма VBA заполняет другой лист

Невозможно выполнить отладочную ошибку объекта при возврате пользовательской формы

Рабочий VBA, который экспортирует excel в csv UTF8

Excel считает, что Combo Box нажата, когда лист вычисляется в VBA

Воспроизведение электронных таблиц Google QUERY () в Excel

Excel VBA: переслать ParamArray в Application.Run

Как добавить ссылку на сборку для развертывания проекта VSTO?

Давайте будем гением компьютера.