ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] 调换word表格中内容顺序

[复制链接]

TA的精华主题

TA的得分主题

发表于 2024-5-11 10:24 | 显示全部楼层 |阅读模式
各位大神:因工作需要,我想要把表格中的“二、检测机器运行状况的内容”和“三、检查零配件库存”的内容互换位置,我的想法是求得“二、检测机器运行状况的内容”和“三、检查零配件库存”所在的段落位置,然后将“二、检测机器运行状况的内容”剪切到“四、将问题上报维修部”,就是不知道这个代码该怎么写,麻烦指导一下,谢谢!
A0D1DD51-F05B-467f-8AA0-056EACF3F3FF.png
03528AAA-DFB5-48b1-983B-2213198E6D1D.png

求助.rar

26.06 KB, 下载次数: 10

TA的精华主题

TA的得分主题

发表于 2024-5-11 11:18 | 显示全部楼层
用替换吧:(二、*^13*^13*^13)(三、*^13*^13)
GIF 2024-05-11 11-17-39.gif

TA的精华主题

TA的得分主题

发表于 2024-5-11 11:25 | 显示全部楼层
Sub da()
Application.ScreenUpdating = False
Dim WordApp As Object '定义Word Application
Set WordApp = CreateObject("Word.Application")
WordApp.Visible = True
Dim worddoc As Object '定义文档
Set worddoc = WordApp.Documents.Open(ThisWorkbook.Path & "\表格.docx")
With WordApp.Selection
    .HomeKey unit:=6, Extend:=wdMove '’wdStory '光标置于文件首
    If .Find.Execute(FindText:="二、检测机器运行状况", Forward:=True) Then '查找到指定字符串
        .Text = "三、检查零配件库存" '替换字符串
    End If
    If .Find.Execute(FindText:="三、检查零配件库存", Forward:=True) Then '查找到指定字符串
        .Text = "二、检测机器运行状况" '替换字符串
    End If
End With
Application.ScreenUpdating = True
MsgBox "ok!"
End Sub

TA的精华主题

TA的得分主题

发表于 2024-5-11 11:26 | 显示全部楼层
求助.rar (23.56 KB, 下载次数: 6)

TA的精华主题

TA的得分主题

发表于 2024-5-11 11:27 | 显示全部楼层

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-5-11 13:49 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册

谢谢大神指导,可能是我问题没有表述清楚:我需要把“二、检测机器运行状况”和“三、检查零配件库存”和它们对应的内容都调换位置,不是只替换标题。实际工作中,只有这两个标题是固定的,下面的内容都不一样,所以我想用剪切来实现这个功能,不知道有没有方法

TA的精华主题

TA的得分主题

发表于 2024-5-11 13:59 | 显示全部楼层
buxiaodea 发表于 2024-5-11 13:49
谢谢大神指导,可能是我问题没有表述清楚:我需要把“二、检测机器运行状况”和“三、检查零配件库存”和 ...

按目前的思路稍加修改也可实现你的效果的嘛

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-5-11 14:10 | 显示全部楼层
3190496160 发表于 2024-5-11 13:59
按目前的思路稍加修改也可实现你的效果的嘛

多次使用替换吗,我也想学习一下 这个连续段落选择,麻烦指导一下

TA的精华主题

TA的得分主题

发表于 2024-5-11 19:35 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2024-5-12 03:10 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
  1. Option Explicit
  2. ' 为了保留原格式,使用拷贝粘贴方式换位
  3. Sub demo()
  4.     Dim rCell As Range, aWord, aPos() As Long, i As Long, rSrc As Range
  5.     Dim sTxt As String, Cnt As Long
  6.     Set rSrc = ActiveDocument.Tables(1).Cell(2, 1).Range
  7.     aWord = Split("二、 三、 四、")
  8.     Cnt = UBound(aWord)
  9.     ReDim aPos(Cnt)
  10.     For i = 0 To Cnt
  11.         Set rCell = rSrc.Duplicate
  12.         If rCell.Find.Execute(FindText:=aWord(i), Forward:=True) Then
  13.             aPos(i) = rCell.Start
  14.         End If
  15.     Next
  16.     With ActiveDocument
  17.         Set rCell = .Range(aPos(0), aPos(1))
  18.         If aPos(Cnt) = 0 Then '四、不存在
  19.             aPos(Cnt) = rSrc.End - 1
  20.             ActiveDocument.Range(aPos(2), aPos(2)).InsertParagraph
  21.             aPos(Cnt) = aPos(Cnt) + 1
  22.         End If
  23.         rCell.Copy
  24.         .Range(aPos(2), aPos(2)).Paste
  25.         rCell.Text = ""
  26.     End With
  27. End Sub
复制代码

评分

1

查看全部评分

您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-5-23 14:29 , Processed in 0.048217 second(s), 12 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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