关闭对话框后,无法在Excel加载项(Office js)中编辑工作表

关闭对话框后,无法在Excel加载项(Office js)中编辑工作表,excel,dialog,edit,add-in,office-js,Excel,Dialog,Edit,Add In,Office Js,在Excel加载项中,在关闭使用displayDialogAsync创建的对话框后,不能编辑工作表中的单元格。如果单击工作表之外的任何其他位置(功能区、任务窗格等)、最小化/最大化Excel或双击单元格,则可以再次编辑。如果在无法编辑的情况下滚动,excel中的所有内容都将变为“不可单击”。 另外,我注意到标题栏(显示文档名称的地方)一直呈灰色,直到您在工作表外单击为止,就好像Excel没有焦点一样 我能够使用Visual Studio中的基本Excel加载项模板复制此内容: 在清单中,我向功能

在Excel加载项中,在关闭使用displayDialogAsync创建的对话框后,不能编辑工作表中的单元格。如果单击工作表之外的任何其他位置(功能区、任务窗格等)、最小化/最大化Excel或双击单元格,则可以再次编辑。如果在无法编辑的情况下滚动,excel中的所有内容都将变为“不可单击”。
另外,我注意到标题栏(显示文档名称的地方)一直呈灰色,直到您在工作表外单击为止,就好像Excel没有焦点一样

我能够使用Visual Studio中的基本Excel加载项模板复制此内容:

在清单中,我向功能区添加了一个按钮(以打开对话框):

然后,我创建了一个非常简单的对话框:

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

Office.initialize=函数(){
$(“#按钮关闭”)。单击(关闭);
};
函数关闭(){
Office.context.ui.messageParent(“关闭”);
}
接近
我经历了一个非常类似的行为,它是由我嵌入到任务面板中的iframe引起的(现在已经修复了)(这里的原始问题:)

是否有解决方法/修复方法


谢谢

只是想再核实一下。这是在Windows桌面(Win32)版本的Excel上正确吗?你能告诉我们你正在使用的版本号吗?谢谢你好,亨伯托。是的,是桌面版。Excel 2016 MSO(16.0.7726.1026)64-bit@SudhiRamamurthy我只是想补充一点,我又一次经历了这种情况。即使在Script Lab中,如果我单击“引用文档”功能区按钮然后关闭对话框,我也无法写入工作表,除非我双击单元格或单击工作表之外的任何位置。目前正在查看这一点。显然,问题在修复后不久又出现了。会回来的…@SudhiRamamurthy有什么消息吗?只是再核实一下。这是在Windows桌面(Win32)版本的Excel上正确吗?你能告诉我们你正在使用的版本号吗?谢谢你好,亨伯托。是的,是桌面版。Excel 2016 MSO(16.0.7726.1026)64-bit@SudhiRamamurthy我只是想补充一点,我又一次经历了这种情况。即使在Script Lab中,如果我单击“引用文档”功能区按钮然后关闭对话框,我也无法写入工作表,除非我双击单元格或单击工作表之外的任何位置。目前正在查看这一点。显然,问题在修复后不久又出现了。会回来的…@SudhiRamamurthy有什么消息吗?
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;
                }
            });
        }
    });
}
<!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>