Não foi possível editar a planilha em um suplemento do Excel (Office js) após fechar uma caixa de diálogo

Em um suplemento do Excel, logo após fechar uma caixa de diálogo criada usando displayDialogAsync, você não pode editar as células na planilha. Se você clicar em qualquer outro lugar fora da planilha (faixa de opções, painel de tarefas, etc.), minimize / maximize o Excel ou clique duas vezes em uma célula e poderá editar novamente. Se você rolar enquanto não pode editar, tudo no Excel se torna "não clicável".
Além disso, notei que a barra de título (onde o nome do documento é mostrado) permanece acinzentada até você clicar fora da planilha como se o Excel não tivesse foco.

Consegui reproduzir isso usando o modelo básico de suplemento do Excel do Visual Studio:

No manifesto, adicionei um botão à faixa de opções (para abrir a caixa 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>

Em seguida, uma função para o arquivo de funções:

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;
                }
            });
        }
    });
}

Então, criei uma caixa de diálogo muito simples:

<!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>

Eu experimentei um comportamento muito semelhante que estava sendo causado (agora corrigido) por um iframe que eu estava incorporando no painel de tarefas (pergunta original aqui:Não foi possível editar as células após um setSelectedDataAsync no Excel)

Existe uma solução alternativa / correção para isso?

Obrigado!

questionAnswers(0)

yourAnswerToTheQuestion