Board logo

标题: [问题求助] 求解vbs批量替换world [打印本页]

作者: xubin3000    时间: 2024-6-9 15:37     标题: 求解vbs批量替换world

新手小白。打算写个vbs小程序。目标:运行程序后,1、弹出界面,界面上可以填写文件夹路径、姓名、性别、住址、身份证号等多个信息。2、填写完毕后,点替换按钮3、点按钮后,自动查找替换该路径下所有world文档的姓名、性别等信息,自动替换为填写的内容。高手给个思路,今天刚开始学vds。目前进度,打开一个world,利用宏,抄了别人几段代码。分别为:替换代码,弹出对话框代码,初始化代码。但是运行的时候,只能运行一段,比如至运行替换代码,实在是不懂了。求高手帮助。微:15306350566,有偿。已收集代码如下:
  1. Private Sub CommandButton1_Click()
  2.     '关闭屏幕刷新
  3.     Application.ScreenUpdating = False
  4.     '定义变量
  5.     Dim myFile$, myPath$, i%, myDoc As Object, myAPP As Object, txt$, Re_txt$
  6.     '设置应用对象,建立临时进程
  7.     Set myAPP = New Word.Application
  8.     '显示选择文件夹对话框
  9.     With Application.FileDialog(msoFileDialogFolderPicker)
  10.         .Title = "选择目标文件夹"
  11.         If .Show = -1 Then
  12.             '读取选择的文件路径
  13.             myPath = .SelectedItems(1)
  14.         Else
  15.             Exit Sub
  16.         End If
  17.     End With
  18.     '文件夹目录和文件完整路径
  19.     myPath = myPath & ""
  20.     myFile = Dir(myPath & "\*.docx")
  21.     '获取被替换的文字
  22.     txt = InputBox("需要替换的文字:")
  23.     '获取替换文件
  24.     Re_txt = InputBox("替换成:")
  25.     '显示打开文档
  26.     myAPP.Visible = True '是否显示打开文档
  27.     '循环处理文件夹中的全部文件
  28.     Do While myFile <> "" '文件不为空
  29.         '打开文件
  30.         Set myDoc = myAPP.Documents.Open(myPath & "\" & myFile)
  31.         '判断文件是否受保护,仅对未受保护的文件有效
  32.         If myDoc.ProtectionType = wdNoProtection Then
  33.             '查找替换
  34.             With myDoc.Content.Find
  35.                 .Text = txt
  36.                 .Replacement.Text = Re_txt
  37.                 .Forward = True
  38.                 .Wrap = 2
  39.                 .Format = False
  40.                 .MatchCase = False
  41.                 .MatchWholeWord = False
  42.                 .MatchByte = True
  43.                 .MatchWildcards = False
  44.                 .MatchSoundsLike = False
  45.                 .MatchAllWordForms = False
  46.                 .Execute Replace:=2
  47.             End With
  48.         End If
  49.         '设置文件窗口状态,避免再次打开时被隐藏
  50.         Application.WindowState = wdWindowStateNormal
  51.         '保存并关闭文档
  52.         myDoc.Save
  53.         myDoc.Close
  54.         myFile = Dir
  55.     Loop
  56.      '关闭临时进程
  57.     myAPP.Quit
  58.     '打开屏幕更新
  59.     Application.ScreenUpdating = True
  60.     '输出提示信息
  61.     MsgBox ("全部替换完毕!")
  62. End Sub
  63. Private Sub UserForm_Initialize()
  64.     ' 初始化表单时设置控件属性
  65.     Me.Label1.Caption = "输入你的名字:"
  66.     Me.TextBox1.Value = ""
  67.     Me.CommandButton1.Caption = "提交"
  68. End Sub
  69. Private Sub CommandButton1_Click()
  70.     ' 按钮点击事件处理程序
  71.     MsgBox "你好," & Me.TextBox1.Value
  72.     Me.TextBox1.Value = "" ' 清空文本框
  73. End Sub
  74. Sub RunUserForm()
  75.     UserForm1.Show
  76. End Sub
复制代码

作者: xubin3000    时间: 2024-6-9 15:38

求高手帮助。微:15306350566,有偿。
作者: xubin3000    时间: 2024-6-9 17:01

暂时有人接单,正协商中。




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2