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. 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 回答