1

検索と検索がありますが、これを理解できないようです。これは多くのメソッドに適用できるかなり一般的な質問だと思いますが、私の質問は特に「検索」に関するものです。

Matlab 環境でデータ マイニングと Excel スプレッドシートへの書き込みを行っています。私はかなりのことを行うことができましたが、1年以上理解できない何かの回避策を使用しており、実際に物事が遅くなります.

セルの特定の値を探すには、'Find' メソッドを呼び出す必要があります。

これが私がいる場所です... Excel = actxserver('Excel.Application'); シート = Excel.Worksheets.Item(mysheet); Sheet.Activate; cellObj = Sheet.Cells;

今...ここで私がしなければならないことです。値「myData_1」を正確に含むセルを見つけたいです。だから私は使用しようとします...

cellObj.Find('myData_1') 

もちろん

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

も動作します..

どちらの方法でも呼び出しはセルを見つけますが、セルには実際には「myData_10」が含まれています。Excel のデフォルトの 'Find' メソッド パラメータは、部分一致のみを対象としているためです。

そこで、マクロを記録したところ、「LookAt: = xlPart」という「検索」プロパティがあることがわかりました。また、そのプロパティを「xlWhole」に設定すると、Microsoft Developer Web サイトごとに正確に一致することがわかりました。

ここで、Matlab 環境に戻ります。cellObj.methodsview によると、(handle,Variant,Variant(Optional))... で 'Find' を呼び出せるはずです。

それで、私は試しました...

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

また、構文の他の約 50 の組み合わせも試しました。必要なセル値を検索し、「LookAt」プロパティを変更するための適切な構文が何であるかを理解できません。

誰でも私を助けてもらえますか?そして、このスレッドを生産的なものにするために、なぜ私が Excel で何かをしているのかと尋ねないでください。

前もって感謝します、ジャスティン

4

1 に答える 1

0

使用する場合はcellobj.Find('myData_1',[],[],1)、必要なことを行う必要があると思います。

ドキュメンテーション ページを見るRange.Findと、LookAtパラメーターが 4 番目であることがわかります。そのため、空の配列を配置して、2 番目と 3 番目の引数をデフォルトのままにしています。定数 1 は に対応しxlWhole、2 は に対応しxlPartます。(私はそれを推測し、うまくいきました-Excelで列挙された定数がどの数値に対応するかを理解する方法がわかりませんでしたが、多くの場合、それらは整数の初期セットです)。

それが役立つことを願っています!

于 2012-12-18T16:06:10.470 に答える