【问题标题】:Excel 2007 cannot RefreshData from shared CSV file on network driveExcel 2007 无法从网络驱动器上的共享 CSV 文件中刷新数据
【发布时间】:2015-03-25 18:54:34
【问题描述】:

我有一个在 WinXP 上运行的简单 Excel 2003 文件,它使用 导入外部数据 --> 文本向导 从共享网络驱动器导入 CSV 文件。

这很好用

我现在需要在 Windows7 机器上的 Excel 2007 中做同样的事情。 所以我转到 Data --> From Text ....并重复这些步骤,这与 Excel 2003 基本相同。

此时(当 Excel 2007 试图打开并读取 CSV 文件的内容时),Excel 抛出 msgbox 错误

“Excel 无法访问文件 XYZ”有几个可能的原因

-文件名或路径不存在

-该文件正在被另一个程序使用

-您尝试保存的工作簿与当前打开的工作簿同名

所以,我不明白发生了什么。我可以通过在 Windows 资源管理器中单击来手动打开 CSV 文件。而且,我的 Excel 2003 文件可以使 VBA 调用 ThisWorkbook.RefreshAll,并且电子表格会使用 CSV 文件中的更新数据(由旧版 c++ 进程编写)进行更新。

那么,为什么 Excel 2007 会抱怨?许多用户在 Excel 2003/WinXP 中间歇性地点击这个 CSV 文件,没有任何问题。为什么 Excel 2007/Win7 报错?有没有办法强制 Excel 2007 尝试通过 VBA 以只读模式打开/导入 CSV 文件中的数据?

【问题讨论】:

    标签: excel vba csv excel-2007


    【解决方案1】:

    查看http://support.microsoft.com/en-us/kb/983314

    似乎是共享违规,上面的热修复似乎解决了这个问题 可能这就是为什么 excel 2007 不起作用的原因。

    在安装 office microsoft hotfix 之前,请确保您已阅读 此修补程序的因果问题,以免对您正在运行的 Office 2007 系统产生任何损害。

    还要记住,windows xp 处理的文件比 windows 7 和特别是网络文件完全传出。

    【讨论】:

    • 该修补程序不包括我的特定问题。 Excel 2007 未尝试保存 CSV 文件。导入 --> 文本向导能够创建原始数据导入连接。但是在 VBA 中点击 RefreshAll 几次后,Excel 遇到了问题(可能是另一个用户或 C++ 进程同时点击了该文件),然后 Excel 永远无法从该错误中恢复。
    • 看来你需要更新旧的c++进程并以RO只读模式访问文件。
    • 另一种方法是使用VBA宏以您自己的方式从excel的文本功能中实现导入->数据,然后您可以在只读模式下处理这些csv文件。一个按钮和一个 VBA 宏读取这个文件并将内容放在适当的工作表中,如果你不能重写旧的 c++ 进程,我认为这是你的解决方案。
    • 您能否发布一个代码 sn-p 来打开一个 CSV 文件(例如,来自 C:\myData\myfile.csv),然后循环遍历内容并将其写入 Excel 文件?
    猜你喜欢
    • 1970-01-01
    • 2021-11-05
    • 1970-01-01
    • 2013-04-15
    • 2013-01-23
    • 2011-10-24
    • 2021-12-14
    • 1970-01-01
    • 2016-05-13
    相关资源
    最近更新 更多