ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] Word中VBA替换指定位置字符

[复制链接]

TA的精华主题

TA的得分主题

发表于 2019-8-30 22:13 | 显示全部楼层 |阅读模式
Word中VBA替换指定位置字符
批量将 Word中VBA替换指定位置字符 请老师们帮帮忙,谢谢老师了!
Word中VBA替换指定位置字符.rar (141.87 KB, 下载次数: 25)
说明.jpg

TA的精华主题

TA的得分主题

发表于 2019-8-31 10:10 | 显示全部楼层
循环打开文档,读取表格内容,替换后重新写入,保存                                                                       

TA的精华主题

TA的得分主题

发表于 2019-8-31 10:37 | 显示全部楼层
本帖最后由 413191246se 于 2019-8-31 10:40 编辑

楼主,请备份后试用:
  1. Sub tet循环遍历文件夹_替换指定位置字符()
  2.     On Error Resume Next
  3.     Dim fd As FileDialog, i As Long, doc As Document, p As String
  4.     Set fd = Application.FileDialog(msoFileDialogFolderPicker)
  5.     If fd.Show = -1 Then p = fd.SelectedItems(1) Else Exit Sub
  6.     Set fd = Nothing
  7.     If MsgBox("是否处理文件夹 " & p & " ?", vbYesNo + vbExclamation, "循环遍历文件夹_通用") = vbNo Then Exit Sub
  8.     With Application.FileSearch
  9.         .NewSearch
  10.         .LookIn = p
  11.         .SearchSubFolders = True
  12.         .FileName = "*.doc"
  13.         If .Execute > 0 Then
  14.             For i = 1 To .FoundFiles.Count
  15.                 Set doc = Documents.Open(FileName:=.FoundFiles(i))
  16.                 doc.Range(Start:=doc.Tables(2).Range.Cells(16).Range.Start, End:=doc.Tables(2).Range.Cells(41).Range.End).Select
  17.                 Selection.Find.Execute " ", , , 0, , , , , , "", 2
  18.                 doc.Range(Start:=doc.Tables(2).Range.Cells(17).Range.Start, End:=doc.Tables(2).Range.Cells(42).Range.End).Select
  19.                 Selection.Find.Execute ";", , , 0, , , , , , ",", 2
  20.                 doc.Close savechanges:=wdSaveChanges
  21.             Next i
  22.             MsgBox "处理完毕!共处理 " & .FoundFiles.Count & " 个文件!", vbOKOnly + vbExclamation, "循环遍历文件夹_通用"
  23.         Else
  24.             MsgBox "未发现文件!", vbOKOnly + vbCritical, "循环遍历文件夹_通用"
  25.         End If
  26.     End With
  27. End Sub
复制代码


TA的精华主题

TA的得分主题

 楼主| 发表于 2019-8-31 17:13 | 显示全部楼层
413191246se 发表于 2019-8-31 10:37
楼主,请备份后试用:

  •                 doc.Range(Start:=doc.Tables(2).Range.Cells(16).Range.Start, End:=doc.Tables(2).Range.Cells(41).Range.End).Select
  •                 Selection.Find.Execute " ", , , 0, , , , , , "", 2
  •                 doc.Range(Start:=doc.Tables(2).Range.Cells(17).Range.Start, End:=doc.Tables(2).Range.Cells(42).Range.End).Select
  •                 Selection.Find.Execute ";", , , 0, , , , , , ",", 2


老师你好,很好用,就是没有看懂,这个指位置是怎么确定的,请老师帮帮讲解下好吧,谢谢老师了!

TA的精华主题

TA的得分主题

发表于 2019-8-31 20:21 | 显示全部楼层
* Range 就是区域、范围,它有起点 .Start,有终点 .End,因为是第2个表格,具体是哪个单元格,是逐步测试来的,先选定一个假定的单元格,如果不对,就增加数字,就是这样。
* 两者都是竖向单元格列区域。一个是“团员”区域,一个是“分号”区域。区域内(Selection)全部替换。

评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-9-1 08:15 | 显示全部楼层
413191246se 发表于 2019-8-31 20:21
* Range 就是区域、范围,它有起点 .Start,有终点 .End,因为是第2个表格,具体是哪个单元格,是逐步测试 ...

谢谢老师了!
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-28 12:32 , Processed in 0.039837 second(s), 14 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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