1

我有搜索和搜索,但似乎无法弄清楚这一点。我认为这是一个适用于很多方法的非常普遍的问题,但我的问题是专门针对“查找”的。

我在 Matlab 环境中进行数据挖掘和写入 Excel 电子表格。我已经能够做很多事情,但是我一直在使用解决方法来解决一年多来我无法弄清楚的事情,这确实减慢了速度。

我需要调用“查找”方法来查找单元格的特定值。

这就是我所在的位置... Excel = actxserver('Excel.Application'); Sheet = Excel.Worksheets.Item(mysheet); 表。激活;cellObj = Sheet.Cells;

现在......这是我需要做的。我想找到一个包含值“myData_1”的单元格。所以我尝试使用...

cellObj.Find('myData_1') 

当然

invoke(cellObj,'Find','myData_1') 

也有效..

无论哪种方式,调用都会找到一个单元格,但该单元格实际上包含“myData_10”。由于 Excel 中的默认“查找”方法参数仅用于部分匹配。

所以我录制了一个宏,发现有一个名为'LookAt: = xlPart'的'Find'属性。我还发现,如果我将该属性设置为“xlWhole”,它将与 Microsoft Developer 网站完全匹配。

现在,回到 Matlab 环境。根据 cellObj.methodsview,我应该能够使用 (handle,Variant,Variant(Optional)) 调用“查找”...

所以,我尝试...

invoke(cellObj,'Find','myData_1','LookAt:=xlWhole').  

我还尝试了大约 50 种其他语法组合。我只是无法弄清楚搜索我想要的单元格值并更改“LookAt”属性的正确语法是什么。

谁能帮帮我吗?请不要问我为什么要用 Excel 做任何事情,为了使这个线程富有成效,我的工作以这种方式完成是有充分理由的。

在此先感谢,贾斯汀

4

1 回答 1

0

我认为如果你使用cellobj.Find('myData_1',[],[],1)它应该做你需要的。

如果您查看文档页面Range.Find您会发现LookAt参数是第四个,所以我放置了空数组以将第二个和第三个参数保留为默认值。常数 1 对应于xlWhole, 2 对应于xlPart。(我猜到了,它起作用了——我从来不知道如何计算出 Excel 中枚举常量对应的数字,但它们通常是一组初始整数)。

希望有帮助!

于 2012-12-18T16:06:10.470 回答