吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 2923|回复: 8
收起左侧

[求助] VBScipt脚本如何调用word文档的查找替换功能?

[复制链接]
邱显帅 发表于 2019-7-9 00:31
本人想用Word文档打开一个文件,然后替换里面的几个字符,比如:不过人家的渔船一般都是中型渔船,聂云这种单人作业的小渔船已经越来越少了,工业化发展带来的是集群效应,大中型渔船的捕捞不论从效率还是利润来看,都超出聂云这种小渔船不知道多少倍。把这段文字里的逗号,替换成^P  实现换行,求大神告知该怎么做?

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

ayx365 发表于 2019-7-9 01:35
用查找(ctrl+F)里的替换就可以了
error3 发表于 2019-7-9 04:23
如果想用VB脚本来做的话,会相当麻烦,需要引用一个word编辑控件。远不如在word里直接操作,简单省事儿。
mxc123 发表于 2019-7-9 09:42


例子:
[Visual Basic] 纯文本查看 复制代码
Dim objWord
Dim ObjDoc

Set objWord = CreateObject("Word.Application")
objWord.Visible = False

Set ObjDoc = objWord.Documents.Open("F:\桌面\Test.docx")  '自行修改

With objWord.Selection.Find
    .Text = ","
    .Replacement.Text = "^p"
    .Forward = True
    .Wrap = wdFindContinue
    .Format = False
    .MatchCase = False
    .MatchWholeWord = False
    .MatchByte = True
    .MatchWildcards = False
    .MatchSoundsLike = False
    .MatchAllWordForms = False
    .Execute , , , , , , , , , , 2
End With
MsgBox("处理完毕")
ObjDoc.Save
objWord.Quit



可以参考http://ask.zol.com.cn/x/8070991.html
弄成拖入处理
Vjmms 发表于 2019-7-9 10:28
[Visual Basic] 纯文本查看 复制代码
Const wdReplaceAll = 2
Set objWord = CreateObject("Word.Application")

objWord.Visible = True

Set objDoc = objWord.Documents.Open("D:\Demo.docx") '换成你的文档的绝对路径,如果批量处理时可考虑把路径存在文本文件里
Set objFind = objWord.ActiveWindow.Selection.Find
objFind.Forward = true
objFind.Text = ","
objFind.Replacement.Text = "^l" 'Word 2013版本的手动换行符
objFind.Execute ,,,,,,,,,,wdReplaceAll

objDoc.Close()
objWord.Quit()
 楼主| 邱显帅 发表于 2019-7-10 03:49
Vjmms 发表于 2019-7-9 10:28
[mw_shl_code=vb,true]Const wdReplaceAll = 2
Set objWord = CreateObject("Word.Application")

谢谢大神,可以用
 楼主| 邱显帅 发表于 2019-7-10 03:50
mxc123 发表于 2019-7-9 09:42
例子:
[mw_shl_code=vb,true]Dim objWord
Dim ObjDoc

谢谢大神,测试成功,可以用
 楼主| 邱显帅 发表于 2019-7-10 03:53
@mxc123  @Vjmms 两位大神, 如果是用vbs代码替换一个TXT文本里的第15行的一整行内容,要怎么实现呢?
mxc123 发表于 2019-7-10 10:02
文本比较小可以试一下,性能应该不咋滴

[Visual Basic] 纯文本查看 复制代码
Dim FSO
Dim OldFile
Dim NewFile
Dim textline
Dim replacetext
Dim LineCount
LineCount = 1

replacetext = "52pojie.cn" '要替换的文本

Set FSO = CreateObject("Scripting.FileSystemObject")
Set OldFile = FSO.OpenTextfile("OldFile.txt")   '原文本
Set NewFile = FSO.CreateTextFile("NewFile.txt",True) '生成新的文本

Do While OldFile.AtEndOfStream  <> True
    if LineCount = 15 then  '第15行
        Call NewFile.Writeline(replacetext)
        textline = OldFile.Readline  '跳过一行
    else
        textline = OldFile.Readline  '按行读取
        Call NewFile.Writeline(textline)
    end if
    LineCount = LineCount + 1
Loop
OldFile.close
NewFile.close
MsgBox("处理完毕")

免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
邱显帅 + 1 + 1 热心回复!

查看全部评分

您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-27 04:30

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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