【已解决】如何只获取_execl_filterset函数筛选后的结果
本帖最后由 zhaoceshi 于 2022-11-10 23:29 编辑如题,表格有很多数据,我在使用了_excel_filtterset函数后,得到自己想要的数据,但是怎么把筛选后的数据提取出来呢?在使用了rangeread函数去读取返回的结果不是筛选后的数据
#include <Excel.au3>
#include <MsgBoxConstants.au3>
; 创建应用对象并打开一个示例工作簿
Local $oExcel = _Excel_Open()
If @error Then Exit MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_FilterSet 示例", "创建 Excel 应用对象发生错误." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
Local $oWorkbook = _Excel_BookOpen($oExcel, @DesktopDir & "\工作簿2.et", True)
If @error Then
MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_FilterSet 示例", "打开工作簿发生错误 '" & @ScriptDir & "\Extras\_Excel1.xls'." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
_Excel_Close($oExcel)
Exit
EndIf
; 仅显示列 2 所选值 20, 40 与 60.
Local $aShow[] = ["192*","10*"]
_Excel_FilterSet($oWorkbook, Default, Default, 1, $aShow,$xlFilterValues)
If @error Then Exit MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_FilterSet 示例 4", "筛选数据发生错误." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
;怎么把筛选后的数据写入新的Excel表就没头绪了‘’
1:用_Excel_RangeFind,查找范围或工作簿中匹配的单元格, 并返回匹配单元格的信息数组
2:用$addfld = ObjCreate("ADODB.Connection")
$addfld.Open("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & $exce1 & ";Extended Properties='Excel 12.0'")
读取判断
自己先玩几天,测试一下你的思路
zhaoceshi 发表于 2022-10-31 20:27
得到想要的数据是提现在文件表格上的,不是返回结果,所以无法写入新的表格
是显示在excel表格上?
没看到代码,说不上解决方法 即然得到自己想要的数据,应该保存到TXT或写入新的excel表格。
你用_Excel_RangeRead去读取是原本的表格,怎么会是筛选后的数据 chzj589 发表于 2022-10-31 18:09
即然得到自己想要的数据,应该保存到TXT或写入新的excel表格。
你用_Excel_RangeRead去读取是原本的表格, ...
得到想要的数据是提现在文件表格上的,不是返回结果,所以无法写入新的表格 chzj589 发表于 2022-10-31 22:21
是显示在excel表格上?
没看到代码,说不上解决方法
不好意思,发帖时没有电脑,所以没有代码和图片,现已补上 _Excel_RangeFind函数不能同时筛选多个条件和指定sheet表,实际上文件有多个sheet,且还要过滤【192.168.1.1】【10.10.10.10】这些,只获取192.168.1.1、10.10.10.10这种类型数据。ObjCreate的没怎么接触过,不懂 zhaoceshi 发表于 2022-11-1 20:01
_Excel_RangeFind函数不能同时筛选多个条件和指定sheet表,实际上文件有多个sheet,且还要过滤【192.168.1. ...
那就用
Local $aResult = _Excel_RangeRead
读取后进行判断,行成数组 本帖最后由 lin6051 于 2022-11-2 21:00 编辑
筛选后,用 excel 的复制函数 就可以了
复制 粘贴到另一个表格, 有需要再读
看你个人需求,一开始 我也用 读取到数组的方式, 数据太多几十万行容易崩
感谢两位大神的热心帮助,问题已经解决。最近太忙了,忘记结贴了 本帖最后由 chzj589 于 2022-11-15 11:04 编辑
zhaoceshi 发表于 2022-11-10 23:29
感谢两位大神的热心帮助,问题已经解决。最近太忙了,忘记结贴了
用_Excel_RangeFind+_Excel_RangeRead查询
可整表模拟查询
缺点不能多个条件与多表查询
在二千多条的表格里查询形成数组速度还是蛮快的
页:
[1]