Excel 使用MatlabActiveX服务器选择多个范围
我想用MATLAB将数据分析的结果写入Excel电子表格。为了让它更方便、更好,我还尝试了格式化内容 因为格式化每个单元格或区域的速度非常慢,所以我尝试格式化多个区域,但没有成功运行 我用Excel直接录制了一个宏,原则上显示了我想做的事情: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
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接口很困难。