設(shè)為首頁收藏本站Access中國

Office中國論壇/Access中國論壇

 找回密碼
 注冊

QQ登錄

只需一步,快速開始

返回列表 發(fā)新帖
查看: 4762|回復(fù): 5
打印 上一主題 下一主題

為什么用find替換如此的慢?

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
1#
發(fā)表于 2015-3-24 22:53:09 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
各位大俠:
有問題想請教,
我用下面兩種代碼做批量替換
第一種如下,它能保持格式的替換,但速度相當(dāng)慢,而且替換時鼠標(biāo)在不停的閃爍
target_doc.Content.Find.Execute findtext:=targetcontent, Replacewith:=replacecontent, Replace:=wdReplaceAll
第二種如下,它能1秒左右替換完畢,但是文檔里面的格式、表格、粘貼圖片都沒了
tbstring = target_doc.Content
tbstring = Replace(tbstring, targetcontent, replacecontent)
為什么有這樣的區(qū)別?

我用第一種方法,做了以下逐條嘗試
With target_doc
        .Visible = True
        .ActiveWindow.View.Type = wdNormalView
        .ScreenUpdating = False
        .Options.CheckSpellingAsYouType = False
        '.DisplayStatusBar = False  由于詞句在2010版已無效,就沒用
End With
但是都不能提速,所以想問要怎么做才能提速呢?
謝謝!!
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享分享 分享淘帖 訂閱訂閱

點擊這里給我發(fā)消息

2#
發(fā)表于 2015-3-25 17:58:06 | 只看該作者
find是有些慢的。
如果不處理其它,只有文字用replace會快不少
3#
 樓主| 發(fā)表于 2015-3-25 20:19:41 | 只看該作者
tmtony 發(fā)表于 2015-3-25 17:58
find是有些慢的。
如果不處理其它,只有文字用replace會快不少

可以文件很少只有文字的嘛,
我最不理解的是,正如我上面所寫的,我把find套進循環(huán)進行批量替換的時候,為什么鼠標(biāo)會閃個不停呢?
究竟是在刷新什么呢?
能不能關(guān)閉這種更新呢?
謝謝指點。!

點擊這里給我發(fā)消息

4#
發(fā)表于 2015-3-25 22:24:58 | 只看該作者
試試用API
lockwindowupdate
不知道行不行
5#
發(fā)表于 2016-1-5 14:19:46 | 只看該作者
據(jù)我個人觀察,用find并replaceall時系統(tǒng)會把大量資源用于保存?zhèn)浞菸募。有時一分鐘可能會保存近10次。然而如果只用find和tyeptext,速度就會快多了。雖然沒有replace快,但也很不錯。只是要明確一點,不能有跨行合并的表格單元格。否則可能會出現(xiàn)死循環(huán)。
6#
發(fā)表于 2018-4-30 14:49:49 | 只看該作者
wrap :=wdfindcontinue和wdfindstop 不一樣,前者要占大量資源,
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則

QQ|站長郵箱|小黑屋|手機版|Office中國/Access中國 ( 粵ICP備10043721號-1 )  

GMT+8, 2025-7-17 00:33 , Processed in 0.172988 second(s), 29 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回復(fù) 返回頂部 返回列表