ExcelTip.Net留存知识帖 ---【注:附件之前被网盘供应商清空后,现已修复-现已修复-现已修复为本地下载!】
现在位置:首页 > E问E答 > Excel VBA > 按筛选条件导出TXT

按筛选条件导出TXT

作者:绿色风 分类: 时间:2022-08-17 浏览:211
楼主
芐雨
要求:
文本<数据库>,是由几百组四个数字组成的字符串,数字间隔为空格,数字格式为00。如:01 02 03 04
EXCEL中有多个筛选字符串的条件,如:M|03 04 09 12 13,对应个数:1,2
最小允错值:0,最大允错值:2

从文本中提取第一个字符串,如:01 02 03 04,判断01,02,03,04在筛选条件里(M|03 04 09 12 13)的对应个数,对应个数为2,
文本第一个字符串:
excel第一个筛选条件:
允错值为0
01 02 03 04,判断01,02,03,04在筛选条件里(M|03 04 09 12 13)的对应个数,对应个数为2,2在【1,2】,则允错值仍为0
继续用01 02 03 04判断
excel第二个筛选条件:
对应个数为0,不在对应个数【1,2】里,允错值加1,0+1变为1
继续向第三个筛选条件判断
继续向第四个筛选条件判断
……
第一个字符串判断完所有筛选条件,则提取下一个字符串,允错值归0,重新判断筛选条件

结果:每组判断完所有筛选条件,若:最小允错值<=允错值<=最大允错值,则把这一字符串导出到新的文本【筛选结果】

代码如下:

  1. Sub 筛选条件导出TXT_芐雨()
  2.     Dim ar, A$, B$, C$, D$, t$, E%, Fx%
  3.     t = Timer
  4.     Open ThisWorkbook.Path & "\" & "数据库.txt" For Binary As #1  '打开文本
  5.     ar = Split(StrConv(InputB(LOF(1), 1), vbUnicode), vbCrLf)
  6.     Close #1

  7.     Fmin = [d6]   '最小允错值
  8.     Fmax = [e6]   '最大允错值
  9.     br = [i9].CurrentRegion   '筛选条件范围
  10.     Open ThisWorkbook.Path & "\" & "筛选结果.txt" For Output As #1  '打开文本,无则创建,有则覆盖。



  11.     For i = 0 To 999    '遍历数组,空格拆分
  12.         Fx = 0
  13.         A = Split(ar(i), " ")(0)
  14.         B = Split(ar(i), " ")(1)
  15.         C = Split(ar(i), " ")(2)
  16.         D = Split(ar(i), " ")(3)
  17.         For j = 1 To UBound(br)  '遍历所有筛选条件
  18.             E = 0
  19.             If InStr(br(j, 1), A) = 1 Then E = E + 1 '查找值,记e为对应个数
  20.             If InStr(br(j, 1), B) = 1 Then E = E + 1
  21.             If InStr(br(j, 1), C) = 1 Then E = E + 1
  22.             If InStr(br(j, 1), D) = 1 Then E = E + 1
  23.             If InStr(br(j, 3), E) = 0 Then Fx = Fx + 1    '对应个数e不在E列条件中,允错值Fx加1
  24.             If Fx > Fmax Then Exit For    '允错值大于最大允错值时跳出
  25.         Next
  26.         If j > UBound(br) Then
  27.             If Fx >= Fmin Then Print #1, ar(i)    '最后一个条件时允错值,Fx<=Fmax时导出
  28.         End If
  29.     Next

  30.     Close #1
  31.     MsgBox Format(Timer - t, "0.000秒")
  32. End Sub



附件:


按筛选条件导出TXT_芐雨.zip




2楼
13641096715
3楼
老糊涂
学习

免责声明

有感于原ExcelTip.Net留存知识的价值及部分知识具有的时间限定性因素, 经与ExcelTip.Net站长Apolloh商议并征得其同意, 现将原属ExcelTip.Net的知识帖采集资料于本站点进行展示, 供有需要的人士查询使用,也慰缅曾经的论坛时代。 所示各个帖子的原作者如对版权有异议, 可与本人沟通提出,或于本站点留言,我们会尽快处理。 在此,感谢ExcelTip.Net站长Apolloh的支持,感谢本站点所有人**绿色风(QQ:79664738)**的支持与奉献,特此鸣谢!
------本人网名**KevinChengCW(QQ:1210618015)**原ExcelTip.Net总版主之一

评论列表
sitemap