Office 板


LINE

软体:OFFICE 365 EXCEL 版本:1908 目前正在编写的功能是直接把一个工作表当成暗号表 A栏=暗号,B栏=解码後的对应词 另一个工作表则是杂乱无章的暗号跟解码後的词汇 然後要用暗号表去抓出文章内是否有出现暗号 而且是否解码後的词汇是否是正确的 例如 暗号表 A1=9527 B1=唐伯虎 A2=88 B2=掰掰 (下略) 解码表 A1=pppij"9527"clizxj B1=pppij"唐伯X"clizxj C1=解码侦错:出现暗号:9527 解码遗漏:唐伯虎 大概是这种感觉 目前编写的代码大致如下: For Row1 = 2 To 10000 For Row2 = 4 To 10000 Sheets("解码").Activate If Sheets("暗号").Cells(Row1, 1).value <> "" Then If Sheets("解码").Cells(Row2, 1).value <> "" Then Code = Sheets("暗号").Cells(Row1, 1).value '暗号 Decry = Sheets("暗号").Cells(Row1, 2).value '解码对应词 Decode1 = InStr(1, (Cells(Row2, 1)), Code) '判断暗号文章是否有暗号 Decode2 = InStr(1, (Cells(Row2, 2)), Decry) '判断解码後是否有对应词 If Decode1 <> 0 And Decode2 = 0 Then '若暗号文章有暗号但解码後无对应词 For Col = 7 To 52 If Cells(Row2, Col).value = "" Then Cells(Row2, Col).value = "解码遗漏:" & Decry '在该文章列的7~52栏个别记下解码遗漏的对应词(因为可能一格内有多个不同暗号) Exit For End If Next End If End If End If Next Next 最後再用Textjoin把纪录在7~52栏的遗漏纪录整合在同一格内 然後为了方便辨识杂乱文章中的各个暗号 也去网路上找了帮特定字串上色的写法 https://access-excel.tips/excel-vba-change-partial-text-color/ 我是用Macro 1 – Change partial text color using VBA Macro这个 目前的写法虽然可以正常运作 但速度上还是有点慢,在有600条暗号的情况下,至少也要60秒才能检查完 不知道是否有其他方式可以加快运算的速度? 而且现在还有个问题是如果暗号中有两个9527 但解码後只有一个唐伯虎,这种情况也不会被判断成解码缺失 所以在想是不是应该写另一个用资料剖析功能运算的版本来测试看看..... 把每个暗号个别分开,就可以连同数量不一致的也抓出来 希望有人可以提供意见,感谢 --



※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 123.193.189.222 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Office/M.1570466433.A.3AB.html
1F:→ soyoso: 1.减少巢状回圈次数range.end().row来取得最後一笔有值的 10/08 07:27
2F:→ soyoso: 储存格列号 10/08 07:27
3F:→ soyoso: 2.只针对出现暗号的储存格,range.find或range.autofilter 10/08 07:27
4F:→ soyoso: 3.减少range.value的写入,而是先写入变数内,最後再一次 10/08 07:27
5F:→ soyoso: 性的写入范围内 10/08 07:27
6F:→ soyoso: 暗号有2个9527,只有1个唐伯虎方面(len(储存格)-len( 10/08 07:27
7F:→ soyoso: replace(取代9527[变数])))/len(9527[变数]),或是ubound( 10/08 07:27
8F:→ soyoso: split()),这样可得知字串内有出现多少次 10/08 07:27
9F:→ soyoso: 再判断是否次数有相符 10/08 07:27
啊 忘了修文 回圈上限的部分我後来有修正了 这样就不用多检查没有值的栏位 range.find或range.autofilter我会再研究看看 另外 写入变数内再拿出来的做法有范例吗? 网站也可 然後虽然可能不会用到了,但还是想问一下 range.value=值 跟 range="值" 在运算速度上是有差的吗? ※ 编辑: Kamikiri (60.248.94.55 台湾), 10/08/2019 10:16:46
10F:→ soyoso: 写入再拿出来,不确定所谓的拿出来是指?一次性写入范围内 10/08 09:56
11F:→ soyoso: 吗?如果是的话写入变数的话,变数(索引值,索引值[二维])= 10/08 09:58
12F:→ soyoso: 判断内原本要写入储存格的值;最後回圈都执行完毕,在 10/08 09:59
13F:→ soyoso: range(和变数维度、个数相同的范围)=变数 的方式写入 10/08 10:00
14F:→ soyoso: range.value 或 range=值方面测试写入10次10万资料上 10/08 10:06
15F:→ soyoso: 二者看来是差不多的 https://i.imgur.com/ShXYHag.jpg 10/08 10:06
感谢,刚刚在看到你的推文前上网查了一下 目前只想出以下写法(还没写好写正确 但应该类似)? Dim Array(1,52) as Variant if 解码有误 Array(Row2,Col) = "解码遗漏:" & Decry 不知道创个Dictionary写进去之後再整批拿出来是否也相同 总之目前大致上已经有方向,应该没问题了,感谢解答 ※ 编辑: Kamikiri (60.248.94.55 台湾), 10/08/2019 10:22:03
16F:→ soyoso: 如非一维的话,这要看dictionary是否可产生二维以上 10/08 10:22
17F:→ soyoso: 一维的话,一样range= dictionary.keys的方式 10/08 10:23
18F:→ soyoso: dictionary.key写入列的话,应需用工作表函数transpose转 10/08 10:24
19F:→ soyoso: 置 10/08 10:24
了解,我晚点再GOOGLE研究看看 最後一问,如果你还有看到的话再麻烦解答 假如我想在解码中使用万用字元* 例如 95*7 让9507~9597全部都视为应该被解码为唐伯虎的话 是否只能使用Range.Find才有办法? 发现其他写法似乎都只会把*视为一般字元而非万用字元 万分感谢 ※ 编辑: Kamikiri (60.248.94.55 台湾), 10/08/2019 11:33:39
20F:→ soyoso: like或range.autofilter 方面可用万用字元 10/08 11:59
21F:推 foolkids: 一样推荐Dictionary,30万笔的比较时,效率还可以;超过 10/10 17:57
22F:→ foolkids: 的时候一样有效能问题,要再多做些手段 10/10 17:57







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:e-shopping站内搜寻

TOP