Autohotkey - 从Excel中将数据检索到列表框中,但有例外

时间:2013-07-30 08:48:41

标签: excel listbox autohotkey

我在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. 随机空白单元格 - 我不需要这些

  4. 有没有办法修改下面的代码或操纵'CONList'变量来过滤到只保留7位数?我无法修改Excel工作表,因此我需要使用输出。

    提前致谢!

1 个答案:

答案 0 :(得分:0)

在每次循环迭代中使用RegExMatch()测试单元格:

for cell in Range_B
{
    if( RegExMatch(cell.text, "^\d{7}$") ) {
        CONList .= cell.text "|"
    }
}