Все-таки в этом файле это сделать не получится.
т.к. список преподов один, а задействованы они в разных группах, в разное время и в разных аудиториях.
Если же городить столько дополнительных списков свободных преподов, сколько строк в расписании, то в такой автоматизации нет смысла.
Можно ли в диапазонах с выпадающими списками сделать дополнительную проверку повторяющихся значений?
т.е. чтобы в одной строке нельзя было бы выбрать два раза одного и того же препода.
Или уже не полоскать мозг и делать такие проверки VBA? (Например, Worksheet_Change(ByVal Target As Range))