Настройка ленты с VBA в Excel

Я уже узнал, что создание настраиваемой вкладки в Excel невозможно! пост (в отличие от MSProject)

В частности, могу ли я изменить пути макросов к текущему местоположению?

Редактировать Кажется, что эта страница может привести к ответу, но я все еще не знаю как, хотя

Несколько более подробное описание ситуации:

Пользователь будет загружать файл, который содержит список материалов, оборудования, труда. Каждый столбец содержит информацию о количествах, ценах и т. Д. Когда пользователь нажимает на эту кнопку, которую я хочу создать (я создал вручную), макрос под названием "Основной" в другой книге запускает и копирует весь лист (содержимое) в себя и выполняет некоторые вещи, которые делают процедуры, на этом.

Итак, проблема, с которой я сталкиваюсь, заключается в том, что когда я отправляю новую версию клиенту, он должен поместить ее в точное место, иначе она не будет работать. Поскольку речь идет о соединении компьютеров Mac и Windows, я бы предпочел увидеть ситуацию, когда кнопка назначается процедуре, когда пользователь открывает WorkBook B (та, которая содержит код).

Таким образом, новую версию нужно открывать только один раз, а затем для непрерывного использования пользователь может просто открыть загруженный файл, нажать соответствующую кнопку, и WorkBook B откроется и запустится.

Может быть, есть другие способы сделать это. Я не проверял, не проще ли назначить кнопку на панель быстрого доступа...

1 ответ

Вот некоторый код, который я использую для добавления пользовательской панели инструментов:

Set cbToolbar = Application.CommandBars.Add(csToolbarName, msoBarTop, False, True)

With cbToolbar
    Set ctButton1 = .Controls.Add(Type:=msoControlButton, ID:=2950)
    Set ctButton2 = .Controls.Add(Type:=msoControlButton, ID:=2950)
    Set ctButton3 = .Controls.Add(Type:=msoControlButton, ID:=2950)
End With

With ctButton1
    .Style = msoButtonIconAndCaption
    .Caption = "Set &Picklists"
    .FaceId = 176
    .OnAction = "SetPicklist"
End With

With ctButton2
    .Style = msoButtonIconAndCaption
    .Caption = "Set &Defaults"
    .FaceId = 279
    .OnAction = "SetDefaults"
End With

With ctButton3
    .Style = msoButtonIconAndCaption
    .Caption = "&Visibility Settings"
    .FaceId = 2174
    .OnAction = "VisibilitySettings"
End With


With cbToolbar
    .Visible = True
    .Protection = msoBarNoChangeVisible
End With

OnAction контролирует макрос, который запускается... Если вы хотите развернуть его для запуска макроса в определенной книге, используйте "what.xls!MacroName"

Другие вопросы по тегам