Vba Matlab中xlswritefig的网络路径不工作

Vba Matlab中xlswritefig的网络路径不工作,vba,matlab,excel,Vba,Matlab,Excel,我正在尝试使用函数打开位于网络路径上的工作簿。也就是说,路径不以传统字母开头,例如C:\。相反,它看起来如下所示: \\networkmain\folder\to 当我试图在Matlab中打开这个文件夹上的excel文件时,我注意到excel在路径前面添加了当前路径。即,如果我当前在文件夹中 C:\Matlab\n然后Excel尝试打开: C:\Matlab\networkmain\folder\to 如何防止这种情况发生并重定向到网络路径?我认为Matlab不支持UNC路径(至少以前不支持

我正在尝试使用函数打开位于网络路径上的工作簿。也就是说,路径不以传统字母开头,例如
C:\
。相反,它看起来如下所示:

\\networkmain\folder\to
当我试图在Matlab中打开这个文件夹上的excel文件时,我注意到excel在路径前面添加了当前路径。即,如果我当前在文件夹中 C:\Matlab\n然后Excel尝试打开:

C:\Matlab\networkmain\folder\to

如何防止这种情况发生并重定向到网络路径?

我认为Matlab不支持UNC路径(至少以前不支持)。简单的方法是将文件夹映射到一个字母驱动器。可以在Windows资源管理器中执行此操作,但我倾向于在命令提示符中使用
net use
<代码>网络帮助使用将向您展示语法

我认为Matlab不支持UNC路径(至少以前不支持)。简单的方法是将文件夹映射到一个字母驱动器。可以在Windows资源管理器中执行此操作,但我倾向于在命令提示符中使用
net use
<代码>网络帮助使用将向您显示MATLAB不支持的语法

UNC(网络)路径。但是,这里有一个解决方法,可以使用命令设置(和取消设置)网络驱动器号

%执行系统命令以分配驱动器号
系统('net use Z:\\networkmain\folder\to');
%在此驱动器下执行操作
cd(Z:\);
% ...
%卸载驱动器
系统(“净使用Z:/delete”);
您可以使用一些简单的循环来查找下一个可用的驱动器号,因为系统调用不应覆盖现有的驱动器号。

MATLAB不支持UNC(网络)路径。但是,这里有一个解决方法,可以使用命令设置(和取消设置)网络驱动器号

%执行系统命令以分配驱动器号
系统('net use Z:\\networkmain\folder\to');
%在此驱动器下执行操作
cd(Z:\);
% ...
%卸载驱动器
系统(“净使用Z:/delete”);

您可以使用一些简单的循环来查找下一个可用的驱动器号,因为系统调用不应覆盖现有的驱动器号。

问题在于函数
xlswritefig
。要解决此问题,请进入函数并更改以下代码行(第86行):


因此,删除
[pwd filesep]
部分。

问题在于函数
xlswritefig
。要解决此问题,请进入函数并更改以下代码行(第86行):


因此,删除
[pwd filesep]
部分。

那么在遇到此问题时,您实际调用的代码行是什么?
xlswritefig(hFig,'\\networkmain\folder\to',sheetname,xlcell)
谢谢,我认为现在更清楚了。考虑到文件交换中的相关页面也添加注释,这样作者就知道这是一个可能导致意外行为的问题。那么,您在遇到这个问题时调用的实际代码行是什么?<代码> xLSWReWestFIG(HFIG,\\NETWorkMe\\文件夹'to,SeaNeNeXLCy] 谢谢,我想现在更清楚了。考虑到文件交换中的相关页面也添加注释,这样作者就知道这是一个可能导致意外行为的问题。谢谢,但对我来说并不是很有用,因为我真的需要使用网络路径。每个用户在这台计算机上都有一个不同的字母指向这个网络路径。我注意到UNC路径与其他Matlab内置函数配合得很好。只是当它与Excel结合使用时,它会损坏。字母驱动器从来都不好。Matlab不是我的专长。如果您不在Matlab中解决它,我建议使用一个外部脚本将数据复制到本地临时文件夹,从MatlabThank中调用,但对我来说没有用处,因为我确实需要处理网络路径。每个用户在这台计算机上都有一个不同的字母指向这个网络路径。我注意到UNC路径与其他Matlab内置函数配合得很好。只是当它与Excel结合使用时,它会损坏。字母驱动器从来都不好。Matlab不是我的专长。如果您不在Matlab中解决它,我建议使用一个外部脚本将数据复制到本地临时文件夹,从MatlabThank中调用。干得好。但是,在函数本身中找到了解决方案,它添加了如下完整路径:
[pwd filesep filename]
。我用文件名替换了这个。所以这是文件交换功能的问题?考虑添加你自己的答案,强调这一点-因为该功能甚至不是你的问题的焦点,所以未来的用户可能会认为这是一个更一般的问题。谢谢。干得好。但是,在函数本身中找到了解决方案,它添加了如下完整路径:
[pwd filesep filename]
。我用文件名替换了这个。所以这是文件交换功能的问题?考虑添加你自己的答案,强调这一点-因为该功能甚至不是你的问题的焦点,所以未来的用户可能会认为这是一个更一般的问题。
%**op = invoke(Excel.Workbooks, 'open', [pwd filesep filename]);
op = invoke(Excel.Workbooks, 'open', filename);