Совместное использование файла настроек (exportedUI) с разными пользователями - PullRequest
0 голосов
/ 07 марта 2019

Я создал пользовательскую ленту в Excel, которая вызывает несколько макросов в моем файле PERSONAL.XLSB, и экспортировал файл настройки (exportedUI) в папку на общем файловом сервере.Все макросы сохраняются в виде файлов .bas, которые каждый пользователь импортирует в свой Personal.XLSB, прежде чем пытаться использовать ленту.

Все отлично работает на моем компьютере, лента доступна и все кнопки работают.Но он выдает ошибку, когда другой пользователь нажимает любую кнопку, чтобы использовать файл настройки со своего компьютера.

Я открыл файл exportedUI и заметил, что каждое действие вызывает PERSONAL.XLSB, который сохраняется на моем локальном компьютере как: C: \ Users \ my.name \ AppData \ Roaming \ Microsoft \ Excel \XLSTART \ PERSONAL.XLSB ...

Это, конечно, не работает, когда другие пользователи сохраняют его как: C: \ Users \ их.name \ AppData \ etc ...

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

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

Или я застрял, пытаясь манипулировать файлом, чтобы он совпадал с уникальной версией для каждого пользователя (возможно, через текстовый редактор с использованием скрипта Python) ???

1 Ответ

1 голос
/ 07 марта 2019

Я думаю, что вы должны распространять код через файл надстройки Excel (.xlam).

Вы можете прикрепить ленту к самой надстройке, которая не видна, как Personal.xlsb .

См. Рон де Брюин Изменение ленты в Excel 2007-2016 .

Просто скопируйте код в новый файл, переименуйте его в надстройку Excel ( предупреждение, что он будет менять ваш путь каждый раз, когда вы выбираете надстройку из выпадающего списка ) и используетеРедактор пользовательского интерфейса для создания меню ленты (для которого не требуется полный путь к файлу).

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


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

Вот пример XML-кода пользовательского интерфейса из одной из моих надстроек.Использование <ribbon startFromScratch="false"> с пространством имен (nsCompany) позволяет мне иметь несколько файлов надстроек для добавления дополнительных кнопок / меню к одной ленте.

<?xml version="1.0" encoding="utf-8" ?>
<!-- Ribbon for 2007+ -->
<customUI onLoad="Engineering Tools.xlam!EngRibbon.RibbonOnLoad" xmlns="http://schemas.microsoft.com/office/2006/01/customui" xmlns:nsCompany="Company Tools">
  <ribbon startFromScratch="false">
    <tabs>
      <tab idQ="nsCompany:CompanyTab" label="Company" keytip="C">
        <group id="ENGGroup1" label="PBS">
          <button id="ENGButton11" label="Project Analysis" imageMso="ImportExcel" size="large" onAction="Engineering Tools.xlam!EngRibbon.USER_ImportMLBOM" getEnabled="Engineering Tools.xlam!EngRibbon.GetEnabled" tag="EngTool" keytip="I" />
          <button id="ENGButton12" label="Login" imageMso="ServerConnection" size="large" onAction="Engineering Tools.xlam!EngRibbon.USER_Login" getEnabled="Engineering Tools.xlam!EngRibbon.GetEnabled" tag="EngTool" keytip="L" />
      </group>
      </tab>
    </tabs>
  </ribbon>
</customUI>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...