Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 使用MatlabActiveX服务器选择多个范围_Excel_Matlab_Activex - Fatal编程技术网

Excel 使用MatlabActiveX服务器选择多个范围

Excel 使用MatlabActiveX服务器选择多个范围,excel,matlab,activex,Excel,Matlab,Activex,我想用MATLAB将数据分析的结果写入Excel电子表格。为了让它更方便、更好,我还尝试了格式化内容 因为格式化每个单元格或区域的速度非常慢,所以我尝试格式化多个区域,但没有成功运行 我用Excel直接录制了一个宏,原则上显示了我想做的事情: Range("B355:AG359,B365:AG369").Select Range("B365").Activate With Selection.Borders(xlInsideVertical) .LineS

我想用MATLAB将数据分析的结果写入Excel电子表格。为了让它更方便、更好,我还尝试了格式化内容

因为格式化每个单元格或区域的速度非常慢,所以我尝试格式化多个区域,但没有成功运行

我用Excel直接录制了一个宏,原则上显示了我想做的事情:

    Range("B355:AG359,B365:AG369").Select
    Range("B365").Activate
    With Selection.Borders(xlInsideVertical)
        .LineStyle = xlContinuous
        .Color = -16776961
        .TintAndShade = 0
        .Weight = xlThin
    End With
    With Selection.Borders(xlInsideHorizontal)
        .LineStyle = xlContinuous
        .Color = -16776961
        .TintAndShade = 0
        .Weight = xlThin
    End With
现在我试着把它翻译成我的MATLAB代码

    xls = actxserver('Excel.Application');         
    xlsDatei = xls.Workbooks.Open(xlsFileName);    
    myBook = xlsDatei.Sheets.Item(p);
    myBook.Activate; 
    myRange = myBook.Range('B355:AG359,B365:AG369');
    ...
这就是重点-我总是会有以下MATLAB错误:

使用Interface.000208D8_0000_0000_C000_000000000046时出错/范围错误:对象返回错误代码:0x800A03EC


也许有人曾经这样做过,可以帮助我。

在Matlab中不确定,但在Excel VBA中,您必须
设置myRange=myBook.Range(…)
。Matlab中是否有一个等价物?另外,从技术上讲,
myBook
不是我所能说的工作簿参考,可能只是为了可读性而想更改变量名……还有,你有没有提出问题并尝试过任何建议的解决方案?通常,如果你想在Matlab中设置一个范围,你只需要编写类似于
myRange=myBook.range('B1:B3')的代码这很有效!但在我的特殊情况下,我不想设置一个多个范围,这正是导致错误的原因。这是我的工作,我自己和你的权利都试过了——你没有错。但是,如果查看Excel Spreedsheet中的结果,就会发现只有第一个范围(在本例中为“B355:AG359”)受到影响。我尝试将背景颜色更改为红色,但两个范围中只有第一个范围更改为红色。不管我怎么做-第二个范围没有受到影响。次要说明:您的
myBook
变量实际上是对
工作表
对象的引用,而不是
工作簿
对象。这种区别可能会帮助您更容易地找到正确的文档。不幸的是,相关的文档是这样的——它似乎说你的“逗号”方法应该有效。对不起;使用Matlab中的ActiveX接口很困难。