ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 Excel Home精品图文教程库
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
300集Office 2010微视频教程 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 4968|回复: 34

piny-條件篩選(VBA)

[复制链接]

TA的精华主题

TA的得分主题

发表于 2014-1-2 17:09 | 显示全部楼层 |阅读模式
大家新年快樂!
由於工作環境改變,原先設計之巨集已不敷使用,故東湊西拼出一個堪用版,不過執行時間都甚長,約20分鐘。
故列示一個極簡單的附件請大家協助提出建議。
使用方式:
1.    請將附件五個檔案都解壓縮至同一路徑
2.    打開piny_auto_R2.06
3.    B2請填201311
4.    B3請填否
5.    B4至B7請選擇清單中之任意組合
6.    A33至A52可於任意多格填寫二位數至四位數
7.    D33, D35, B55, B56請選擇清單中之任意組合
8.    之後按下「執行基準分析」
附檔有模擬一極簡情況,我的電腦需運行32秒。由於實際檔案大小大約是本版之30幾倍,故相同條件變成需運行約20分鐘。
謹請教可優化代碼的方式,先前僵化於部分內容要有公式,不過隨著檔案量的增加,公式算法覺得愈來愈慢, 3.zip (1 MB, 下载次数: 14)

201311 info_u.zip (1.42 MB, 下载次数: 12)

201311 info_c.zip (1.42 MB, 下载次数: 20)

謝謝。
執行基準分析的運行大致如下:
1.    於同路徑下開啟四個檔案,篩選後不存檔後關閉
2.    A33至A52即檢查所開啟之info_C檔案中result活頁之U欄,那一筆公司符合條件。
舉例,若A33填寫13,則U欄只要是1300-1399皆符合;若A34填寫489,則U欄只要是4890-4899皆符合;若A37填寫2834,則U欄是2834即符合
3.    B33至B52即檢查所開啟之info_C檔案中result活頁之W欄,那一筆公司符合條件。
4.    C33至C52即檢查所開啟之info_C檔案中result活頁之Y欄及Z欄,那一筆公司有包含即符合條件。
5.    2,3,4為聯集判斷(可參考公式寫法,不過顯然此方式絕對不效率)

  1.     With Range("EB3").Resize(xEndrow - 2)
  2.         .Formula = _
  3.         "=SUMPRODUCT((LEFT(U3,LEN(DW$33:DW$52))=DW$33:DW$52&"""")*(DW$33:DW$52<>"""")+(LEFT(W3,LEN(DX$33:DX$52))=DX$33:DX$52&"""")*(DX$33:DX$52<>"""")+(LEN(SUBSTITUTE(Y3&"" ""&Z3,DY$33:DY$52,""""))<>LEN(Y3&"" ""&Z3)))"
  4.         .Value = .Value
  5.     End With
复制代码

6.    D33, D35係判斷公司所有地區(F欄),與5為交集判斷
7.    判斷OK的公司會算到auto檔案的all_CU與info_CU活頁
8.    定量及定性活頁即所求

TA的精华主题

TA的得分主题

 楼主| 发表于 2014-1-3 14:59 | 显示全部楼层
小弟覺得主要原因是我仍習慣以公式的語法來架構我想要的效果,所以通常的寫法就是寫好公式再一起下拉,主要改進的方向應該就是減少利用公式的寫法。{:soso_e100:}

因為我開啟簡体版的excel,巨集裡亦全是亂碼,想請教我的繁体版Excel巨集代碼,各位是否亦是看到亂碼?

TA的精华主题

TA的得分主题

发表于 2014-1-3 15:14 | 显示全部楼层
代码里面有繁体字的地方是乱码,建议有繁体字的都改为英文,包括模块名。

评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2014-1-3 15:40 | 显示全部楼层
本帖最后由 piny 于 2014-1-6 10:30 编辑

不相干的代碼先全部移除,先把問題精簡化

TA的精华主题

TA的得分主题

 楼主| 发表于 2014-1-3 15:41 | 显示全部楼层
本帖最后由 piny 于 2014-1-6 10:31 编辑

不相干的代碼先全部移除,先把問題精簡化

TA的精华主题

TA的得分主题

 楼主| 发表于 2014-1-3 15:46 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
這是A0001之所有代碼

piny A0001.zip

7.06 KB, 下载次数: 3

TA的精华主题

TA的得分主题

 楼主| 发表于 2014-1-6 10:40 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
謝謝藍老師的提醒,把不相干的代碼全移除,代碼介面也全部英文化,煩請大大提出優化建議,謝謝。
piny_auto_R2.06Test.zip (166.78 KB, 下载次数: 3)

201311_all.zip (547.57 KB, 下载次数: 2)

201311 info_c.zip (1.42 MB, 下载次数: 11)

201311 info_u.zip (1.42 MB, 下载次数: 2)


使用方式:
五個檔案壓縮後放於同一路徑,代碼全部都在auto的附件中,其餘四個係自資料庫中每月用人工load下來,實際檔案大小甚大

在auto的UI活頁填選完相關選項(淺藍底)後,按旁邊執行巨集

我覺得可能卡的步驟在於我有四處是寫好公式後下拉,之後再把公式移除

TA的精华主题

TA的得分主题

发表于 2014-1-6 22:54 | 显示全部楼层
Sub OSIRIS篩選及CU整合()  這段很耗時間,
昨天利用假日理一下流程,加上今晚修了一半,
流程太多,儘管之前參與了部份程式,還是要重來,不確定可完全達到需求(目前也是時間有限),
倒是希望〔藍老師〕能來個全壘打!終結這苦惱的資料匯整!加油啦!

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2014-1-7 18:52 | 显示全部楼层
本帖最后由 准提部林 于 2014-1-14 14:36 编辑

儘力了,請測試!~~

繁體版.主檔:(程式碼在樓下),其他不盡處,請論壇各位大俠幫幫手,謝謝!_2014.01.14
 
另外4檔,請自行轉換為 .xls 副檔名的檔案!
執行時一樣會有重算問題,應該是其他表有公式參照到正寫資料的工作表,
 
手上只有2000版,真使不上力~~
 
 


piny_auto_R2.06v01.rar

284.39 KB, 下载次数: 5

TA的精华主题

TA的得分主题

 楼主| 发表于 2014-1-8 02:38 | 显示全部楼层
准提部林 发表于 2014-1-7 18:52
儘力了,請測試!~~

繁體版.主檔:

哈!感謝回覆,由於小弟明日一大早要至日本出差五日,待回來工作後再進行測試,謝謝。 ^^
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

关闭

最新热点上一条 /1 下一条

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-4-25 21:38 , Processed in 0.045262 second(s), 17 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表