首页 > 其他分享 >VBA-选择标题的内容

VBA-选择标题的内容

时间:2023-05-02 15:23:21浏览次数:27  
标签:VBA Selection False title 标题 选择 str True Find

简单说明

这个是模仿但是不是wod自带的功能:选择标题和内容

 这个功能能方便的快速选择这个标题下面的所有内容。

要选定是因为我要对这个标题下面的子标题进行排序,但是排序的话,不能有父标题,也就是说,选择的内容中的最高标题要是同级别(有父标题就排序父标题去了,但是父标题又只有一个,排序个der啊)。

vba代码

 1 Function select_range(start_title_str As String, end_title_str As String, Optional style_str As String = "标题 1") As Boolean
 2     '选择范围,通过指定本标题字符串(start_title_str)和下一个标题字符串(end_title_str),选择它们之间的内容
 3     '若是end_title_str为空,则认为从start_title_str开始选择到当前节的末尾
 4     'style_str是可选参数,它有一个默认值,该值用于查询的时候指定标题样式名
 5     '若是start_title_str为空,则不进行任何操作
 6     '本函数成功选择则返回true,失败返回false
 7     If (Len(start_title_str) <> 0) Then
 8         Selection.Find.ClearFormatting
 9         Selection.Find.Style = ActiveDocument.Styles(style_str)
10         With Selection.Find
11             .Text = start_title_str
12             .Forward = True
13             .Wrap = wdFindContinue
14             .Format = True
15             .MatchCase = False          '是否区分大小写
16             .MatchWholeWord = False
17             .MatchByte = True
18             .MatchWildcards = False
19             .MatchSoundsLike = False
20             .MatchAllWordForms = False
21             .MatchWholeWord = True      '是否全字匹配
22             .Execute
23         End With
24         If (Selection.Find.Found) Then
25             range_start_index = Selection.Start + Len(Selection.Find.Text) + 1
26             If (Len(end_title_str) <> 0) Then
27                 Selection.Find.Text = end_title_str
28                 Selection.Find.ClearFormatting
29                 Selection.Find.Style = ActiveDocument.Styles(style_str)
30                 With Selection.Find
31                     .Forward = True
32                     .Wrap = wdFindContinue
33                     .Format = True
34                     .MatchCase = False          '是否区分大小写
35                     .MatchWholeWord = False
36                     .MatchByte = True
37                     .MatchWildcards = False
38                     .MatchSoundsLike = False
39                     .MatchAllWordForms = False
40                     .MatchWholeWord = True      '是否全字匹配
41                     .Execute
42                 End With
43                 If (Selection.Find.Found) Then
44                     range_end_index = Selection.Start
45                     Selection.Start = range_start_index '设定选择的开始位置
46                     Selection.End = range_end_index     '设定选择的结束位置
47                     select_range = True
48                 Else
49                     MsgBox ("未查询到 " + end_title_str)
50                     select_range = False
51                 End If
52             Else
53                 Selection.Start = range_start_index '设定选择的开始位置
54                 Selection.Expand (wdSection)        '拓展选择到当前所在节的末尾
55                 select_range = True
56             End If
57         Else
58             MsgBox ("未查询到 " + start_title_str)
59             select_range = False
60         End If
61     Else
62         select_range = False
63     End If
64 End Function
View Code

相关用途

在指定的范围内查询

 1 Sub cmdlet_命令查询()
 2 '
 3 ' 查找 宏
 4 '
 5 '
 6     Result = select_range("cmdlet 命令", "Server 2016 core")
 7     Selection.Find.ClearFormatting
 8     Selection.Find.Style = ActiveDocument.Styles("标题 2")
 9     With Selection.Find
10         '.Text = "Exit-PSSession"
11         .Text = InputBox("请输入要查找的命令名称:", "cmdlet 命令查询")
12         '.Replacement.Text = ""     '不进行替换
13         .Forward = True
14         .Wrap = wdFindContinue
15         .Format = True
16         .MatchCase = False          '是否区分大小写
17         .MatchWholeWord = False
18         .MatchByte = True
19         .MatchWildcards = False
20         .MatchSoundsLike = False
21         .MatchAllWordForms = False
22         .MatchWholeWord = True      '是否全字匹配
23     End With
24     If Not (Selection.Find.Execute) Then         '执行查找
25         Result = MsgBox("没有查询到该命令,请键入该命令的正式名称而非别名、简称;若还是没有,请新增该命令", 0, "未查询到")
26     End If
27 End Sub
View Code

调整标题的顺序

 1 Sub 调整about标题的顺序()
 2 '
 3 ' 调整about标题的顺序 宏
 4 '
 5 '
 6     Result = select_range("about配置文件", "实战:远程巡检希沃一体机的运行信息")
 7     If (Result) Then
 8         Selection.SortByHeadings wdSortFieldSyllable, wdSortOrderAscending
 9     Else
10         MsgBox ("选定失败,无法排序。")
11     End If
12 End Sub
View Code

 

标签:VBA,Selection,False,title,标题,选择,str,True,Find
From: https://www.cnblogs.com/love-DanDan/p/17367735.html

相关文章

  • 选择排序
    importjava.util.Scanner;publicclassMain{publicstaticvoidmain(String[]args){Scannersc=newScanner(System.in);intn=sc.nextInt(); int[]q=newint[n];for(inti=0;i<n;i++)q[i......
  • 【MAUI Blazor踩坑日记】6.mac标题栏颜色修改
    MAUI中mac的标题栏颜色默认是灰白色的,有一点丑如果我们想要自定义颜色,并且在运行时也能更改颜色,该怎么办呢万幸从一个GitHub库中借鉴到了办法https://github.com/BenBtg/MauiMacToolBar这个库是自定义标题栏,如果你想自定义标题栏,而不仅仅是改变颜色,可以直接去看这个库。第一......
  • Excel 使用VBA 自定义函数
     启用Excel开发工具    打开Excel的VBA(ALT+F11)   新键VBA工程模块写入自定义函数FunctionHexIPAddr(strIPAddrAsString,isAscAsBoolean)AsStringDimarry,bit0AsString,bit1AsString,bit2AsString,bit3As......
  • 测温用NTC的选择掉坑案例,切忌盲目追求过大的B值
    有一个项目需要采集室温结果犯傻,选了个B值4250的100K热敏测温的时候,1mv的电压变化就计算得到接近1度的温度变化,这尼玛,绷不住啊后来和chatgpt讨论了一会并且使用一个3950的NTC做了实验得到一个结论  ......
  • 设置wordpress:设置标题字号大小(wordpress 6.2)
    一,未设置之前字号过大,如图:说明:刘宏缔的架构森林是一个专注架构的博客,地址:https://www.cnblogs.com/architectforest     对应的源码可以访问这里获取: https://github.com/liuhongdi/     或: https://gitee.com/liuhongdi说明:作者:刘宏缔邮箱:3711253......
  • 现在告诉你MySQL为什么选择B+Tree呢?
    大家都知道MySQL数据库选择的是B+Tree作为索引的数据结构,那为什么会选择B+Tree呢?本文分四种数据结构来分析:二叉查找树平衡二叉树多路平衡查找树加强版多路平衡查找树(B+Tree)二叉查找树二叉搜索树的特点:左子树的键值小于根的键值,右子树的键值大于根的键值。   从上面的2个图来看......
  • 关于在ECside列表页面点击标题查看明细后不能回到原来所在页的问题
    [u][b]问题:[/b][/u]在使用ECside分页框架的过程中,我们在EC列表页面点击某一行记录,进入该行记录的详细信息页面,此时我们在返回时却又只能返回到第一页,不能返回原来所在的第二页。其中还有原来我们设置好的每页显示多少行,也变回原来的默认值了,排序方式也变成默......
  • layui学习5(日期与时间选择、分页)
    1.日期与时间选择1.1<divclass="layui-inline"><!--注意:这一层元素并不是必须的--><inputtype="text"class="layui-input"id="test1"placeholder="默认选择题"></div><divclass=&qu......
  • 初识选择语句
     选择语句,就是如何在代码中实现选择 先创建一个输入的值为max打印你所要选择的语句用1/0输入一个值,将这个值放入在max里输入1时将会打印“考上好学校”输入其他数时将会打印“没书读”......
  • jq中的九大选择器有哪些?作用是什么?
    jQuery中的九大选择器如下:元素选择器(ElementSelector):使用元素名称来选择HTML元素。如$('p')选取所有<p>元素。ID选择器(IDSelector):使用元素的ID属性来选择HTML元素。如$('#myId')选取ID为'myId'的元素。类选择器(ClassSelector):使用元素的class属性来选......