2

我一直在使用 .xlsx 文件运行 excel 导出功能。有时在加载 excel 文件时,我会使用 System.Runtime.InteropServices.Marshal.BindToMoniker() 方法。当有问题的文件打开但存在时,我得到以下结果:

Excel 将启动,但不会加载工作簿,也不会加载任何工作表。Excel 显示为空白。

在执行导出的程序之外打开文件时,它以完全相同的方式加载。Excel 已打开,窗口顶部显示 Microsoft Excel,但没有可见工作表。Excel 看起来根本没有打开任何东西。

进入选项还表明没有打开工作簿。该文件肯定有内容,当我在 Notepad++ 中打开它时可以看到该文件有足够的细节让我看到工作簿中有工作表,但没有显示。

我不确定如何以编程方式防止这种损坏发生,或者如何修复它。任何建议或想法将不胜感激!

为了避免这个问题,我从不在关闭的 Excel 文件上使用 BindToMoniker(通过检查文件是否被锁定,如果它被解锁,我只使用 open 函数)

这是我遇到此问题时运行的代码。仅当文件存在且未打开时才会发生:

    Public Function OpenExcelFile( _
    ByRef pobjExcel As Excel.Application, _
    ByRef pwkbWorkBook As Excel.Workbook, _
    ByVal pstrFileName As String) As Boolean 

...

pwkbWorkBook = BindToMoniker(pstrFileName)
            pobjExcel = pwkbWorkBook.Parent
            pobjExcel.Visible = True 'Temp; I use this to see the state of the file
4

6 回答 6

5

难道是工作簿被隐藏了?在视图选项卡上,如果启用取消隐藏,您可以显示隐藏的工作簿。

此外,如果您认为工作簿应该可见,您可以通过更新 Windows 可见属性来显示它。

pobjExcel.Windows(workbookName).Visible = True
于 2012-09-14T20:25:46.047 回答
3

只需添加

pobjExcel.Windows(1).Visible = True

在您将 Excel 设置为可见的位置之后。我相信您正在使应用程序可见,但工作簿仍然不可见(至少这是我之前遇到的问题)。这应该解决它。

于 2012-09-14T20:25:24.497 回答
2

我在 excel 2010 中遇到了同样的问题。今天早些时候,我保存了文件并关闭了 excel。我的电脑进入睡眠模式,当我重新启动并使用 Windows 资源管理器打开相同的 excel 2010 文件时,excel 只显示一个空白(灰色)屏幕。只有在 VBA 编辑器中,我才能看到工作簿已打开。

我的解决方案(与上述相同但已详细说明)

  • 使用 ALT + F11 打开 VBA 编辑器
  • 在左上角项目资源管理器树形视图中,点击刚刚打开的没有出现在excel前端的工作簿
  • 打开直接窗口(CTRL + G)
  • 键入“Windows(thisworkbook.name).Visible = True”,然后按 Enter
于 2013-06-28T15:52:41.063 回答
1

试试这个

转到查看菜单并点击全部排列。它会给你一些选项复选标记平铺。

它对我有用,希望对你也有用。

最好的,汗

于 2014-02-13T23:54:58.310 回答
1

这个简单的解决方案对我有用:打开工作表并转到“查看”选项卡,然后单击“新窗口”。

于 2019-04-13T14:51:10.943 回答
0

我在 2015 年 1 月 1 日对整个工作表不可见时遇到了同样的问题,我转到“查看”菜单并单击“取消隐藏”图标所有选项卡都变得可见,我再次快速保存了文件;-)

于 2015-01-13T16:41:19.460 回答