当前位置: 首页 > news >正文

VBA之Word应用第二章第七节:利用自定义函数修改书签

《VBA之Word应用》(版权10178982),是我推出第八套教程,教程是专门讲解VBA在Word中的应用,围绕“面向对象编程”讲解,首先让大家认识Word中VBA的对象,以及对象的属性、方法,然后通过实例让大家感受到Word VBA 的妙处。

这套教程是专门针对WORD VBA 的教程,是VBA中的稀缺资源,我给这套教程分归为中级教程,希望大家在VBA入门后再学习这套教程,这样会更加深入的理解面向对象编程的意义。

本套教程共三册十六章,今日内容为第二章部分:VBA之Word应用第二章第七节:利用自定义函数修改书签a2e4909d72455142bbd6c78e1c5933d6.jpeg

分享成果,随喜正能量】 多要求自己,你会更加独立,少要求别人,你会减少失望,宁愿花时间去修炼 不完美的自己,也不要浪费时间去期待完美的别人!。

第七节 利用自定义函数修改书签

大家好,我们继续文档书签内容的讲解,这节内容是如何修改书签。在之前几讲的讲解中,我们已经对书签有了较为全面的认识,我们这讲是修改书签,涉及到捕获书签的Range,添加书签等等。

1 利用自定义函数修改书签的思路分析

为了利用自定义函数来修改书签,我们要先建立一个自定义函数,这个自定义函数需要利用到主程序中提供的两个输入参数,其中一个参数是我们需要修改的书签名称,另外一个参数是我们要修改后的文本。

主程序过程:主程序的作用主要是提供需要修改的书签名称及将要修改后的文本,并作为两个参数传递给自定义函数。在主程序中还要根据自定义函数返回值来确定是否修改完成。

自定义函数过程:这个自定义函数需要输入两个参数,一个参数是我们需要修改的书签,另外一个参数是我们将要修改的文本。同时自定义函数过程会输出一个参数,用于通知主程序是否修改完成。

2 利用自定义函数修改书签的代码

我们来看看主程序和自定义函数的代码:

Function NewBookmark(BookMarkName As String, newtext As String) As Boolean

Dim myRange As Range

If ActiveDocument.Bookmarks.Exists(BookMarkName) Then

Set myRange = ActiveDocument.Bookmarks(BookMarkName).Range

myRange.Text = newtext

ActiveDocument.Bookmarks.Add BookMarkName, myRange

NewBookmark = True

Else

NewBookmark = False

End If

End Function

Sub mynzH() '修改书签内容

Dim BookMarkName As String

Dim newtext As String

Dim UU As Boolean

BookMarkName = "B008"

newtext = "唵、嘛、呢、叭、哞、吽"

UU = NewBookmark(BookMarkName, newtext)

If UU = True Then MsgBox "书签修改完成!"

If UU = False Then MsgBox "文档中没有发现" & BookMarkName & "书签,不能做出修改!"

End Sub

代码截图:

3b8158a1669a9834d1098732e12a0412.jpeg

3 代码的解读及运行效果

我们先来代码的解读:

1)BookMarkName = "B008" 这是主程序中需要传递给自定义函数的第一个参数,这个参数是书签变量。

2)newtext = "唵、嘛、呢、叭、哞、吽" 这是主程序中需要传递给自定义函数的第二个参数,这个参数是需要修改的书签文本。

3)UU = NewBookmark(BookMarkName, newtext) 将上述两个参数传递给自定义函数NewBookmark

4) If UU = True Then MsgBox "书签修改完成!" 假如NewBookmark函数返回的值为True ,则表示修改成功。

5)If UU = False Then MsgBox "文档中没有发现" & BookMarkName & "书签,不能做出修改!" 假如NewBookmark函数返回的值为 False ,则表示没有修改成功。

以上是主程序的内容讲解,下面我们看自定义函数NewBookmark的代码。

6)If ActiveDocument.Bookmarks.Exists(BookMarkName) Then 在自定义函数中首先判断我们传入的书签是否存在。

7)Set myRange = ActiveDocument.Bookmarks(BookMarkName).Range 假如这个书签存在,那么提取这个书签的Range,并赋给变量myRange

8)myRange.Text = newtext 将新的文本赋给书签

9)ActiveDocument.Bookmarks.Add BookMarkName, myRange 添加书签给我们刚才取得的变量。

10)NewBookmark = True 给自定义函数赋返回值True

11)NewBookmark = False 当没有发现需要找的书签时,这个自定义函数返回FALSE

下面我们看代码的运行效果:

为了测试代码的运行效果,我们先在文档的结尾添加书签B008,其文本内容是“1234”,如下图:

99e158c2ded30ff3a42ec9bb33307348.jpeg

我们运行代码:

ce8aa91f64a0a9a928a47937d0bdbfb5.jpeg

从以上代码的讲解及运行效果看,通过书签的修改,我们同样修改了书签的文本。

今日内容回向:

1 在文档中如何修改书签?

2 在修改书签的代码中,主程序和自定义函数的作用是什么?

本讲内容参考程序文件:Doc 002文档.docm

分享成果,随喜正能量

de579e984811f819fe7d6df6b8b03781.jpeg

我20多年的VBA实践经验,全部浓缩在下面的各个教程及应用工具中:

019ade2cb24d3bc32edc2a4894627165.jpeg


相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 《昇思25天学习打卡营第01天|qingyun201003》
  • 1.10编程基础之简单排序--02:奇数单增序列
  • 集成测试技术栈
  • 解决Spring Boot应用中的内存优化问题
  • macos 10.15系统下载包,macOS Catalina for mac
  • 【排序 - 冒泡排序】
  • 电脑压缩视频怎么压缩,电脑压缩视频大小
  • Prometheus+Grafana主机运行数据
  • 搜维尔科技:【研究】Scalefit是一款可在工作场所自动处理3D姿势分析结果的软件
  • 【PHP小课堂】学习PHP中的字符串操作函数(二)
  • HDFS 块重构和RedundancyMonitor详解
  • ceph mgr [errno 39] RBD image has snapshots (error deleting image from trash)
  • oracle查询出表中某几个字段值不唯一的数据
  • 小程序内容管理系统设计
  • 05.FFMPEG日志系统
  • 《Java编程思想》读书笔记-对象导论
  • ES6 ...操作符
  • ES6 学习笔记(一)let,const和解构赋值
  • go语言学习初探(一)
  • JS专题之继承
  • Next.js之基础概念(二)
  • Python连接Oracle
  • react 代码优化(一) ——事件处理
  • React 快速上手 - 06 容器组件、展示组件、操作组件
  • spring-boot List转Page
  • 第2章 网络文档
  • 对象管理器(defineProperty)学习笔记
  • 关键词挖掘技术哪家强(一)基于node.js技术开发一个关键字查询工具
  • 关于springcloud Gateway中的限流
  • 如何将自己的网站分享到QQ空间,微信,微博等等
  • 深度学习入门:10门免费线上课程推荐
  • 使用Tinker来调试Laravel应用程序的数据以及使用Tinker一些总结
  • 一起来学SpringBoot | 第三篇:SpringBoot日志配置
  • 正则表达式小结
  • ###C语言程序设计-----C语言学习(3)#
  • #Datawhale X 李宏毅苹果书 AI夏令营#3.13.2局部极小值与鞍点批量和动量
  • (02)vite环境变量配置
  • (html转换)StringEscapeUtils类的转义与反转义方法
  • (第30天)二叉树阶段总结
  • (理论篇)httpmoudle和httphandler一览
  • (六)库存超卖案例实战——使用mysql分布式锁解决“超卖”问题
  • (三维重建学习)已有位姿放入colmap和3D Gaussian Splatting训练
  • (十)【Jmeter】线程(Threads(Users))之jp@gc - Stepping Thread Group (deprecated)
  • (十七)devops持续集成开发——使用jenkins流水线pipeline方式发布一个微服务项目
  • (四)Linux Shell编程——输入输出重定向
  • (一)Mocha源码阅读: 项目结构及命令行启动
  • (一)Neo4j下载安装以及初次使用
  • (转)编辑寄语:因为爱心,所以美丽
  • .net core webapi 大文件上传到wwwroot文件夹
  • .NET Core实战项目之CMS 第十二章 开发篇-Dapper封装CURD及仓储代码生成器实现
  • .Net 执行Linux下多行shell命令方法
  • .NET/C# 判断某个类是否是泛型类型或泛型接口的子类型
  • @我的前任是个极品 微博分析
  • []常用AT命令解释()
  • [AIGC] 使用Curl进行网络请求的常见用法