究竟为什么能';Excel是否处理两个同名文件?

究竟为什么能';Excel是否处理两个同名文件?,excel,Excel,这困扰着我的整个IT生活——我使用7个不同版本的Excel工作了20多年,每个版本都有很大的变化,迫使我搜索新版本中隐藏的旧功能——但有一件事是坚不可摧的:无法打开两个同名文件 很抱歉,Excel无法同时打开两个同名工作簿 所以我真的很想在这里了解一下,为什么在Excel 2013中仍然是这样,这甚至不需要在Excel 95中实现?Excel数据结构或内部处理中是否存在任何技术或设计原因,使其无法处理具有不同路径但具有相同文件名的两个文件对象?我不想在这里抨击微软,我只想了解背后的原因。微软说这

这困扰着我的整个IT生活——我使用7个不同版本的Excel工作了20多年,每个版本都有很大的变化,迫使我搜索新版本中隐藏的旧功能——但有一件事是坚不可摧的:无法打开两个同名文件

很抱歉,Excel无法同时打开两个同名工作簿

所以我真的很想在这里了解一下,为什么在Excel 2013中仍然是这样,这甚至不需要在Excel 95中实现?Excel数据结构或内部处理中是否存在任何技术或设计原因,使其无法处理具有不同路径但具有相同文件名的两个文件对象?我不想在这里抨击微软,我只想了解背后的原因。

微软说这是由于链接单元格的计算不明确

如果有一个单元格=“[Book1.xlsx]Sheet1”$G$33,你有两本书 名为“Book1”的打开,无法分辨您指的是哪一个


这种在单元格中按名称引用链接工作簿的方式在所有版本中都存在,我很怀疑这种方式是否会改变。

对于所有到此结束的人,因为他们希望同时打开两个同名Excel文件:

尽管Excel本身不允许这样做,因为Baldrick在中所述的情况(当然有疑问),但至少存在允许在单独的Excel实例/进程中同时打开多个同名xls/xlsx文件的变通方法

解决方法在中进行了解释

通过设置“忽略其他使用动态数据交换(DDE)”的应用程序,甚至有一种“内置”修复方法,这对我来说很有效,但在关闭Excel然后双击试图再次打开文件时会导致错误

我不得不去做注册表修复,效果很好注意此解决方法一旦应用,将防止在所有打开的Excel表格(以及具有不同名称的表格)之间交叉引用单元格,因为单独的Excel实例彼此不知道(至少根据我刚才进行的测试)

相反,您可能希望选择将新的上下文菜单项
Open Separate
添加到资源管理器的修复程序,并且仅当您确实希望同时打开两个同名文件时才使用它。


是的,你可以!!!(但我认为这是一个Excel错误)


试试这个:

  • 在桌面上,右键单击并选择“新建”=>“Microsoft Excel” 工作表”
  • 将文件重命名为“Test[1].xlsx”(名称很重要!)
  • 现在在桌面上创建一个Now文件夹,并将文件“Test[1].xlsx”的副本粘贴到其中
  • 双击打开两个“Test[1].xlsx:Et-voilá
  • 现在,两个(同名)工作簿在Excel中打开。但如果您查看“Workbook.Name”属性,它会变得更加奇怪,因为在内部它们都被重命名为“Test(1.xlsx)”

    这是因为Excel在其公式内部确实需要特殊字符“[]”

    因此,它们(通常)不允许用于工作簿名称,但外部名为“Test[1].xlsx”的工作簿无论如何都可以打开,这对我来说是一个bug

    为什么??因为作为一名程序员,如果你想使用“Application.workbooks[name]”来解决这两个工作簿的问题,那么你真的会遇到麻烦,因为“Application.workbooks[name]”并没有失败,但总是提供第一个用这个名字找到的工作簿


    Jörg

    投票决定迁移到超级用户。与编程没有任何关系。@brettdj:我自己也考虑过同样的问题,但因为这不是一个应用程序使用问题,而是关于它背后的技术原因,这反过来又涉及到实现,我想说它也适用于这里。我使用的其他软件都没有这个问题。“抱歉,Mozilla Firefox无法同时打开两个名为index.html的文件。”@ColonelPanic您如何解决Microsoft设置此限制的问题?非常好的链接,谢谢-事实上,我已经从其他来源尝试过,主要是在单独的实例中打开,但再次退出,但我想如果需要的话,我会选择上下文菜单项单独打开它。让我们现在想想。遇到打开两个同名文件这一令人沮丧的限制的用户中,有百分之几的人在其中一个文档中有这种链接?我猜是0.001%。因此,由于0.001%的用户,99.9999%的用户应该找到解决方法,重命名文件,等等。这不是很愚蠢吗?为什么不允许打开这些文件并给出一个错误,除非像这样的引用确实存在(或者简单地说,不要计算这些单元格,当用户点击它时给出一个错误)。有趣的答案@jreichert,你能解释一下“Workbook.Name”-属性吗?我应该在命令提示符下运行吗?@Ashrith:转到excel VBA即时窗口(ALT+F11,CTRL+G)。用法:请参阅然后键入:?应用程序。工作簿(1)。名称和点击返回。。。