0

Excelシートに数字のリストがあります。私にとって唯一興味深いのは、列 B です。

次のコードを使用して、そのシートからデータを取得しています。

xlDown :=   -4121

fileselectfile, path


oExcel := ComObjCreate("Excel.Application") ;create a handle to a new excel application
oExcel.Visible := True ; by default excel sheets are invisible use true to see excel
oWorkBook := oExcel.Workbooks.open(path)

End := oExcel.Range("B1").End(xlDown).row
;Range_B := oExcel.Range("B1:B" . End) <--- would be good, but stops at every empty lines
Range_B := oExcel.Range("B1:B100") <--- I'm using this as my list is never longer than 100 entries

for cell in Range_B

    CONList .= cell.text "|"

GuiControl,, CONListVar, %CONList%

return

この列には 3 種類のデータがあり、そのうちの 1 つだけに関心があるので、残りは除外したいと思います。データ型:

  1. 7 桁の数字 - これが必要です

  2. この形式の日付: DD.M.YYYY - これらは必要ありません

  3. ランダムな空白のセル - これらは必要ありません

次のコードを変更する方法、または 'CONList' 変数を操作して 7 桁の数字のみを保持するようにフィルタリングする方法はありますか? Excel シートを変更できないため、出力を操作する必要があります。

前もって感謝します!

4

1 に答える 1

0

RegExMatch()各ループ反復でセルをテストします。

for cell in Range_B
{
    if( RegExMatch(cell.text, "^\d{7}$") ) {
        CONList .= cell.text "|"
    }
}
于 2013-07-30T13:37:04.530 に答える