#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:
Если вы намерены сделать функции геокодирования доступными во всех ваших книгах на вашем компьютере, сделайте это:
- Удалите все ранее сохраненные
Geocode.xlsm
файлы иGeocode.xlam
файлы. - Скачайте Geocode.xlsm.
- Открой его.
- Перейдите в
File
раздел > >Save As
. - Измените тип файла с
Excel Macro-Enabled Workbook (*.xlsm)
наExcel Add-in (*xlam)
. - Щелчок
Save
. - Закройте все экземпляры Excel.
- Откройте Excel. (т. Е. только приложение Excel, поэтому не открывайте книгу.)
- Ты должен быть на
Home
экране. - Перейдите в
New
раздел > >Blank workbook
. - В ленте перейдите в
Developer
раздел > >Excel Add-ins
. - Проверять
Geocode
. - Щелчок
OK
. - Закройте все экземпляры Excel.
- Откройте любую книгу Excel или создайте новую пустую книгу.
- Посадите
=@NominatimReverseGeocode(51.5,-0.144)
в любую камеру. - Это должно решиться в саду Букингемского дворца.
Если вы хотите, чтобы функции геокодирования были просто в одной конкретной книге, дайте мне знать, и я напишу шаги для этого.
Ответ №2:
Если вам нужен этот код, доступный только для вас, а не для других пользователей, безусловно, самым простым способом было бы создать личную книгу макросов.
Создайте рабочую книгу и сохраните ее как
C:UsersusernameAppDataRoamingMicrosoftExcelXLSTARTPERSONAL.xlsm
Скопируйте код из книги геокодирования в файл PERSONAL.xlsm.
PERSONAL.xlsm автоматически загрузится с помощью Excel. Префикс вызова функции с именем рабочей книги: =PERSONAL.xlsm!@NominatimReverseGeocode(B32,C32)