Развертывание макросов в виде дополнительных модулей с настраиваемыми кнопками ленты для всего офиса

Что-то вроде этого для $.ajax (только HTML5):

$.ajax({
    xhr: function() {
        var xhr = new window.XMLHttpRequest();
        xhr.upload.addEventListener("progress", function(evt) {
            if (evt.lengthComputable) {
                var percentComplete = evt.loaded / evt.total;
                //Do something with upload progress here
            }
       }, false);

       xhr.addEventListener("progress", function(evt) {
           if (evt.lengthComputable) {
               var percentComplete = evt.loaded / evt.total;
               //Do something with download progress
           }
       }, false);

       return xhr;
    },
    type: 'POST',
    url: "/",
    data: {},
    success: function(data){
        //Do something on success
    }
});
1
задан Egon Allison 5 March 2019 в 19:20
поделиться

1 ответ

В настоящее время я делаю это, и это довольно глубокий процесс настройки, но, как только он будет запущен, он пройдет гладко.

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

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

В-третьих, когда вы вносите обновления в код в файле тестирования, просто замените производственный файл обновленным файлом и снова измените его на «Только чтение». Пользователям нужно будет только закрыть все экземпляры Excel и открыть заново, чтобы получить самую последнюю копию надстройки.

Ниже приведена надстройка администратора, которую я использую для перемещения тестовых файлов в производство.

Sub DeployAddIn()
'Author       : Ken Puls (www.excelguru.ca)
'Macro Purpose: To deploy finished/updated add-in to a network
'               location as a read only file

    Dim strAddinDevelopmentPath As String
    Dim strAddinPublicPath As String
    Dim FSO As New FileSystemObject

    'Set development path
    ChDrive "R:"
    ChDir "R:\addins\PROJECTS"
    strAddinDevelopmentPath = Application.GetOpenFilename()
    If strAddinDevelopmentPath = "False" Then
        Exit Sub
    ElseIf InStr(strAddinDevelopmentPath, "\PRODUCTION\") > 1 Then
        If MsgBox("You've Selected a Production File To Replace a Production File. Would You Like To Continue Anyway?", vbYesNo) = vbNo Then
            Exit Sub
        End If
    End If

    'Get Desitination path
    strAddinPublicPath = Replace(strAddinDevelopmentPath, "TESTING", "PRODUCTION")

    'Create dir if it doesn't exist
    On Error Resume Next
    MkDir Left(strAddinPublicPath, InStrRev(strAddinPublicPath, "\") - 1)
    On Error GoTo 0

    'Turn off alert regarding overwriting existing files
    Application.DisplayAlerts = False

    'overwrite existing file
    On Error Resume Next
    SetAttr strAddinPublicPath, vbNormal
    On Error GoTo 0
    FSO.CopyFile strAddinDevelopmentPath, strAddinPublicPath, True
    SetAttr strAddinPublicPath, vbReadOnly

    'Resume alerts
    Application.DisplayAlerts = True
End Sub

В-четвертых, я также написал макрос для изменения пользовательской ленты. Приведенная ниже ссылка, кроме того, полезен сайт Рона де Брюина. https://grishagin.com/vba/2017/01/11/automatic-excel-addin-installation.html Код для автоматизации установки надстройки после получения нужного текста из файла officeUI

[ 111]

*** ВАЖНО ---- Если вы устанавливаете надстройку вручную, убедитесь, что вы выбрали нет при появлении запроса, если хотите, чтобы файл был сохранен на локальном компьютере. Если вы сохраните его на локальном компьютере, он создаст локальную копию и никогда не будет обновляться, если вы вносите изменения в сетевую копию или хотите исправить ошибку.

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

0
ответ дан W-hit 5 March 2019 в 19:20
поделиться
Другие вопросы по тегам:

Похожие вопросы: