Добавление макроса с одного листа Excel на другой

#excel #vba

Вопрос:

введите описание изображения здесь

Я работаю со списком адресов в excel 365. Я хочу выполнить функцию обратного геокодирования для получения адресов из доступной информации о долготе и широте. для этого я нашел надстройку excel https://github.com/gramener/geocode-excel , который я скачал. вы можете увидеть пример на скриншоте выше. формула, которую он вводит, такова:

 =@NominatimReverseGeocode(B32,C32)
 

Теперь я хочу сделать это доступным на моем основном листе, чтобы я мог использовать NominatimReverseGeocode. Я перешел к файлу — Параметры — Файл — Надстройки

введите описание изображения здесь

Но функция «NominatimReverseGeocode» не отображается на моем основном листе. Как я могу сделать эту функцию доступной на моем основном листе?

Редактировать:

Я переименовал файл в geocode.xlam в powershell. Теперь я получаю:

введите описание изображения здесь

Комментарии:

1. Хотя я не могу открыть файл на github, я предполагаю, что это обычная функция VBA, которую можно просто добавить, вставив код в редактор VBA.

2. Это файл xlsm, а не xlam. Сначала сохраните его как xlam.

3. пожалуйста, смотрите правку

4. Вы не можете просто переименовать файл XLSM в файл XLAM. Вы должны открыть файл XLSM в виде листа Excel, а затем в Excel сохранить как… в надстройку XLAM. В качестве альтернативы вы можете просто скопировать код VBA в свою основную книгу.

5. Чтобы дать более подробный ответ, мне нужно знать: 1) Вы ожидаете, что эта функция будет доступна во всех ваших книгах или только в одной конкретной? 2) Должна ли эта функция быть доступна другим пользователям книги(книг) или только вам?

Ответ №1:

Если вы намерены сделать функции геокодирования доступными во всех ваших книгах на вашем компьютере, сделайте это:

  1. Удалите все ранее сохраненные Geocode.xlsm файлы и Geocode.xlam файлы.
  2. Скачайте Geocode.xlsm.
  3. Открой его.
  4. Перейдите в File раздел > > Save As .
  5. Измените тип файла с Excel Macro-Enabled Workbook (*.xlsm) на Excel Add-in (*xlam) .
  6. Щелчок Save .
  7. Закройте все экземпляры Excel.
  8. Откройте Excel. (т. Е. только приложение Excel, поэтому не открывайте книгу.)
  9. Ты должен быть на Home экране.
  10. Перейдите в New раздел > > Blank workbook .
  11. В ленте перейдите в Developer раздел > > Excel Add-ins .
  12. Проверять Geocode .
  13. Щелчок OK .
  14. Закройте все экземпляры Excel.
  15. Откройте любую книгу Excel или создайте новую пустую книгу.
  16. Посадите =@NominatimReverseGeocode(51.5,-0.144) в любую камеру.
  17. Это должно решиться в саду Букингемского дворца.

Если вы хотите, чтобы функции геокодирования были просто в одной конкретной книге, дайте мне знать, и я напишу шаги для этого.

Ответ №2:

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

Создайте рабочую книгу и сохраните ее как

C:UsersusernameAppDataRoamingMicrosoftExcelXLSTARTPERSONAL.xlsm

Скопируйте код из книги геокодирования в файл PERSONAL.xlsm.

PERSONAL.xlsm автоматически загрузится с помощью Excel. Префикс вызова функции с именем рабочей книги: =PERSONAL.xlsm!@NominatimReverseGeocode(B32,C32)