2012-05-18 2 views
0

Обновление: Если я определил диапазон как input_range из A2: P29. Затем If Enter в строке 30, то он работает. Тем не менее, Input_range не автоматически расширяется, и я хотел бы переместить всю строку вниз, а не только последнюю строку в диапазоне. Как я мог достичь этих двух вещей?Почему код не запускается в событии Worksheet_Change()?

Previous question

Начиная с помощью Сиддхарт Rout, я могу сделать эту работу на новый файл Excel. Однако, независимо от того, что я пробовал в этом файле

Sample Excel File - он просто не работает. Я предполагаю, что существует некоторая структура, чтобы предотвратить автоматизацию добавления строки. Если да, то как я могу заставить код работать?

ответ

2

Когда вы обнаруживаете событие Worksheet_Change(), вам необходимо иметь свой код в объекте рабочей таблицы, а не в модуле.

Вот как это сделать:

  1. Alt-F11, чтобы открыть редактор VBA
  2. Скопируйте Worksheet_Change() к югу от Module1
  3. Дважды щелкните на Sheet6 (itemmaster)
  4. Paste код

Убедитесь, что вы видите Рабочий лист и Изменить в двух раскрывающихся списках в верхней части редактора.

Примечание: вы должны всегда включать Option Explicit, чтобы требовать объявления переменной. Прочитайте этот ответ, чтобы увидеть, как это сделать: https://stackoverflow.com/a/10653204/138938

Screen-shot of code in worksheet instead of module

+0

Я сделал скопировать код Sheet6 (itemmaster), но это не сработало. – NCC

+1

Можете ли вы загрузить новый файл? Я дам вам знать, что пошло не так. –

+1

Вы выполнили шаги в своем ответе? Поскольку файл, который вы опубликовали, имеет код в модуле1, а не в коде для листа 6. –

Смежные вопросы