VB Excel: как переместить рабочий лист с помощью форм / макросов - PullRequest
0 голосов
/ 07 октября 2009

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

Есть предложения? Я пробовал гуглить, и, похоже, не было схожих проблем ... может быть, я что-то упустил?

Ответы [ 3 ]

3 голосов
/ 07 октября 2009

Чтобы скопировать макросы и формы, необходимо экспортировать их из исходной рабочей книги, а затем импортировать их в новую рабочую книгу.

Чтобы экспортировать, щелкните правой кнопкой мыши соответствующую форму или модуль в Project Explorer в исходной книге и выберите Export File. Это создаст файл .frm для формы или файл .bas для модуля. Затем вы можете перейти к новой книге и использовать Import File таким же образом.

Если вы использовали специальные модули из раздела Microsoft Excel Objects проводника (например, модуль с именем Sheet1 или модуль с именем ThisWorkbook), вы, вероятно, обнаружите, что они не импортируются правильно. Для этого просто скопируйте и вставьте исходный код макросов из одной рабочей книги в другую

1 голос
/ 07 октября 2009

Единственный метод, как предложено 'barrowc'. Однако вы можете решить, какой из них проще: переместить лист макроса на новый или переместить лист из нового файла в файл с макросом:)

Приветствия ...

0 голосов
/ 06 июня 2012

Я могу описывать очевидное, но обычно, когда мне нужно переместить код из одной рабочей книги в другую (не макеты, именованные диапазоны и т. Д.) I:

  • Открыть обе рабочие книги
  • Открыть редактор vba (alt + F11)
  • Перетащите нужные модули из одного проекта в другой.

Чтобы избавиться от ссылок на другую книгу, я бы попытался (не уверен, что это сработало бы) выполнить поиск / замену, найти полное имя книги и заменить его пустой строкой ("") и сделать уверен, под вариантами вы смотрите в: Формулы (я верю).

Надеюсь, это поможет.

...