No se puede editar la hoja de trabajo en un complemento de Excel (Office js) después de cerrar un cuadro de diálogo

En un complemento de Excel, justo después de cerrar un cuadro de diálogo creado con displayDialogAsync, no puede editar las celdas en la hoja de trabajo. Si hace clic en cualquier otro lugar fuera de la hoja de trabajo (cinta de opciones, panel de tareas, etc.), minimiza / maximiza Excel o hace doble clic en una celda, puede volver a editar. Si se desplaza mientras no puede editar, todo en Excel se vuelve "imposible hacer clic".
Además, he notado que la barra de título (donde se muestra el nombre del documento) permanece atenuada hasta que hace clic fuera de la hoja de trabajo como si Excel no tuviera el foco.

Pude reproducir esto usando la plantilla básica de complemento de Excel de Visual Studio:

En el manifiesto agregué un botón a la cinta (para abrir el cuadro de diálogo):

 <Control xsi:type="Button" id="DDR.SettingsButton">
              <Label resid="DDR.SettingsButton.Label" />
              <Supertip>
                <!-- ToolTip title. resid must point to a ShortString resource. -->
                <Title resid="DDR.SettingsButton.Title" />
                <!-- ToolTip description. resid must point to a LongString resource. -->
                <Description resid="DDR.SettingsButton.Text" />
              </Supertip>
              <Icon>
                <bt:Image size="16" resid="Contoso.tpicon_16x16" />
                <bt:Image size="32" resid="Contoso.tpicon_32x32" />
                <bt:Image size="80" resid="Contoso.tpicon_80x80" />
              </Icon>

              <Action xsi:type="ExecuteFunction">
                <FunctionName>openDialog</FunctionName>
              </Action>

            </Control>

Luego, una función para el Archivo de Funciones:

function openDialog(event) {
    Office.context.ui.displayDialogAsync(window.location.origin + "/functions/Dialog.html", { height: 50, width: 50 }, function dialogCallback(asyncResult) {
        if (asyncResult.status !== "failed") {
           var dialog = asyncResult.value;
            dialog.addEventHandler(Office.EventType.DialogMessageReceived, function (args) {
                dialog.close();
                event.completed();
            });
            dialog.addEventHandler(Office.EventType.DialogEventReceived, function (arg) {
                switch (arg.error) {
                    case 12006:
                        event.completed();
                        break;
                    default:
                        break;
                }
            });
        }
    });
}

Entonces, creé un diálogo muy simple:

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <script src="https://appsforoffice.microsoft.com/lib/1/hosted/office.js" type="text/javascript"></script>
    <script type="text/javascript" src="https://ajax.aspnetcdn.com/ajax/jQuery/jquery-2.2.1.min.js"></script>
    <script>
        Office.initialize = function () {
            $('#buttonClose').click(close);

        };

        function close() {
            Office.context.ui.messageParent("close");
        }

    </script>

</head>
<body>
    <Button id="buttonClose">Close</Button>
</body>
</html>

Experimenté un comportamiento muy similar que estaba siendo causado (ahora corregido) por un iframe que estaba incrustando en el panel de tareas (pregunta original aquí:No se pueden editar celdas después de un setSelectedDataAsync en Excel)

¿Hay alguna solución / solución para esto?

¡Gracias!

Respuestas a la pregunta(0)

Su respuesta a la pregunta