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

使用VBA快速将文本转换为Word表格

Word提供了一个强大的文本转表格的功能,结合VBA可以实现文本快速转换表格。

示例文档如下所示。

在这里插入图片描述

现在需要将上述文档内容转换为如下格式的表格,表格内容的起始标志为@@@

在这里插入图片描述

示例代码如下。

Sub SearchTab()Application.DefaultTableSeparator = "*"Selection.HomeKey unit:=wdStoryWith Selection.Find.Text = "@@@".Forward = True.Wrap = wdFindStop.Format = False.MatchAllWordForms = FalseDo While .ExecuteWith Selection.Delete.Expand wdParagraph.Font.Italic = True.Range.Font.TextColor.RGB = RGB(97, 146, 0).MoveDown unit:=wdParagraph.MoveDown unit:=wdParagraph, Count:=6, Extend:=wdExtendCall textToTable.Collapse wdCollapseEndEnd WithLoopEnd With
End Sub

【代码解析】
第2行代码设置默认表格分隔符为星号(*),这是文本转换为表格时的相关设置。
第3行代码将光标移动到文档的开头,准备进行查找操作。
第4行代码开始查找,通过Selection.Find对象定义查找条件。
第5行代码指定要查找的文本为@@@
第6行代码定义查找方向为向前。
第7行代码设置查找范围停止在文档的结尾。
第8行代码取消格式匹配选项。
第9行代码禁用同义词匹配。
第10行代码使用Do While循环查找文档中的所有符合条件的文本。
第11~18行代码对每一个找到的文本执行一系列操作。
第12行代码删除选中的查找到的文本,即起始标志@@@
第13行代码将选区扩展到整段,即表格之上的标题行。
第14行代码将整段的字体设置为斜体。
第15行代码将段落的字体颜色设置为指定的绿色。
第16~17行代码向下移动光标两个段落,并选中接下来的6个段落。
第18行代码调用textToTable子程序,将选中的文本转换为表格。
第19行代码将选区折叠到当前段落的末尾,准备开始查找下一个匹配项。

Sub textToTable()Dim tempString As String, i As IntegerSelection.ConvertToTable Separator:=wdSeparateByDefaultListSeparator, _NumColumns:=5, NumRows:=6, AutoFitBehavior:=wdAutoFitFixedWith Selection.Tables(1).Style = "Table Grid".ApplyStyleHeadingRows = True.ApplyStyleLastRow = False.ApplyStyleFirstColumn = True.ApplyStyleLastColumn = FalseFor i = 1 To .Rows.CountIf i > 2 Then .Rows(i).Cells.MergeIf Int(i / 2) <> i / 2 Then.Rows(i).Shading.Texture = wdTextureNone.Rows(i).Shading.ForegroundPatternColor = wdColorAutomatic.Rows(i).Shading.BackgroundPatternColor = -603923969.Rows(i).Range.Font.Bold = TrueEnd IfNextEnd With
End Sub

【代码解析】
第3~4行代码将选中的文本转换为表格。具体参数如下:

  • Separator:=wdSeparateByDefaultListSeparator 表示使用默认的列表分隔符进行列分隔。
  • NumColumns:=5 设置表格为5列。
  • NumRows:=6 设置表格为6行。
  • AutoFitBehavior:=wdAutoFitFixed 表示表格列宽是固定的,不自动调整。
    第5~14行代码在表格转换完成后对其样式和内容进行设置。
    第6行代码将表格样式设置为 “Table Grid”(网格样式)。
    第7行代码设置表格的标题行(第一行)应用样式。
    第8行代码设置最后一行不应用样式。
    第9行代码设置表格的第一列应用样式。
    第10行代码设置最后一列不应用样式。
    第11~19行代码通过For循环遍历表格的每一行:
    第12行代码判断当前行的行号是否大于2,如果是,则合并该行的所有单元格,如表格中第3~6行只有单个单元格。
    第13行代码判断当前行为奇数行时,将其背景设置为指定颜色,并加粗字体。
    第14行代码中 Texture = wdTextureNone 表示无纹理。
    第15行代码中 ForegroundPatternColor = wdColorAutomatic 表示前景颜色为默认值。
    第16行代码中 BackgroundPatternColor = -603923969 设置背景颜色为指定的RGB值(浅灰色)。
    第17行代码设置字体设置为加粗。

相关文章:

使用VBA快速将文本转换为Word表格

Word提供了一个强大的文本转表格的功能&#xff0c;结合VBA可以实现文本快速转换表格。 示例文档如下所示。 现在需要将上述文档内容转换为如下格式的表格&#xff0c;表格内容的起始标志为。 示例代码如下。 Sub SearchTab()Application.DefaultTableSeparator "*&quo…...

力扣题解1870

这道题是一个典型的算法题&#xff0c;涉及计算在限制的时间内列车速度的最小值。这是一个优化问题&#xff0c;通常需要使用二分查找来求解。 题目描述&#xff08;中等&#xff09; 准时到达的列车最小时速 给你一个浮点数 hour &#xff0c;表示你到达办公室可用的总通勤时…...

D3.js数据可视化基础——基于Notepad++、IDEA前端开发

实验:D3.js数据可视化基础 1、实验名称 D3数据可视化基础 2、实验目的 熟悉D3数据可视化的使用方法。 3、实验原理 D3 的全称是(Data-Driven Documents),是一个被数据驱动的文档,其实就是一个 JavaScript 的函数库,使用它主要是用来做数据可视化的。本次实…...

在Robot Framework中Run Keyword If的用法

基本用法使用 ELSE使用 ELSE IF使用内置变量使用Python表达式本文永久更新地址: 在Robot Framework中&#xff0c;Run Keyword If 是一个条件执行的关键字&#xff0c;它允许根据某个条件来决定是否执行某个关键字。下面是 Run Keyword If 的基本用法&#xff1a; Run Keyword…...

虚拟机ip突然看不了了

打印大致如下&#xff1a; 解决办法 如果您发现虚拟机的IP地址与主机不在同一网段&#xff0c;可以采取的措施之一是调整网络设置。将虚拟机的网络模式更改为桥接模式&#xff0c;这样它就会获得与主机相同的IP地址&#xff0c;从而处于同一网段。或者&#xff0c;您可以使用…...

LeetCode[中等] 763. 划分字母区间

给你一个字符串 s 。我们要把这个字符串划分为尽可能多的片段&#xff0c;同一字母最多出现在一个片段中。 注意&#xff0c;划分结果需要满足&#xff1a;将所有划分结果按顺序连接&#xff0c;得到的字符串仍然是 s 。 返回一个表示每个字符串片段的长度的列表。 思路 贪心…...

Java LeetCode每日一题

997. 找到小镇的法官 package JavaExercise20241002;public class JavaExercise {public static void main(String[] args) {int[][] array {{1,3},{2,3},{3,1}};Solution solution new Solution();System.out.println(solution.findJudge(3, array));} }class Solution {pu…...

数据结构--集合框架

目录 1. 什么是集合框架 2. 背后所涉及的数据结构以及算法 2.1 什么是数据结构 2.2 容器背后对应的数据结构 1. 什么是集合框架 Java 集合框架 Java Collection Framework &#xff0c;又被称为容器 container &#xff0c;是定义在 java.util 包下的一组接口 int…...

Win10鼠标总是频繁自动失去焦点-非常有效-重启之后立竿见影

针对Win10鼠标频繁自动失去焦点的问题&#xff0c;可以尝试以下解决方案&#xff1a; 一、修改注册表&#xff08;最有效的方法-重启之后立竿见影&#xff09; 打开注册表编辑器&#xff1a; 按下WindowsR组合键&#xff0c;打开运行窗口。在运行窗口中输入“regedit”&#x…...

智能涌现|迎接智能时代,算力产业重构未来

前言 OpenAI首席执行官山姆奥特曼在《智能时代》中描绘了一个令人振奋的未来图景&#xff0c;其中算力产业将扮演至关重要的角色。奥特曼预测&#xff0c;我们可能在“几千天内”迎来超级智能&#xff0c;这一进程将极大加速社会结构的智能化转型。 这一预测与算力产业的未来…...

关于HTML 案例_个人简历展示01

案例效果展示 代码 <!DOCTYPE html> <lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>个人简历信息</title> </he…...

【前端开发入门】css快速入门

目录 引言一、css盒模型1. 盒模型概念2. 盒模型案例 二、css编写1. html文件内部编写1.1 标签style属性编写1.2 css选择器关联1.2.1 id选择器1.2.2 class选择器1.2.3 标签选择器1.2.4 css选择器作用域1.2.5 其他选择器1.2.6 各css选择器优先级 2. 单独维护css文件2.1 创建css文…...

java中创建不可变集合

一.应用场景 二.创建不可变集合的书写格式&#xff08;List&#xff0c;Set&#xff0c;Map) List集合 package com.njau.d9_immutable;import java.util.Iterator; import java.util.List;/*** 创建不可变集合:List.of()方法* "张三","李四","王五…...

D25【 python 接口自动化学习】- python 基础之判断与循环

day25 for 循环 学习日期&#xff1a;20241002 学习目标&#xff1a;判断与循环&#xfe63;-35 for 循环&#xff1a;如何遍历一个对象里的所有元素&#xff1f; 学习笔记&#xff1a; for 循环与while循环的区别 for循环的定义 使用for循环遍历序列 使用for循环遍历字典…...

HTTP1.0和HTTP1.1有什么区别

HTTP/1.0 和 HTTP/1.1 是两个不同版本的 HTTP 协议。虽然它们的核心功能都是提供网页数据传输&#xff0c;但 HTTP/1.1 对 HTTP/1.0 做了很多改进&#xff0c;提升了性能和灵活性。以下是它们的主要区别&#xff1a; 1. 持久连接&#xff08;Persistent Connection&#xff09…...

卡夫卡的理解

一、架构理解 在这个单聊新架构中&#xff0c;涉及多个服务器组件共同协作来实现单聊功能。 ChatAccessServer&#xff1a;可能负责处理单聊相关的访问请求&#xff0c;比如用户登录单聊以及发送单消息的请求接入。ChatHttpPushServer&#xff1a;推测其用于通过 HTTP 协议推…...

基础算法之滑动窗口--Java实现(上)--LeetCode题解:长度最小的子数组-无重复字符的子串-最大连续1的个数III-将x减到0的最小操作数

这里是Thembefue 今天讲解算法中较为经典的一个算法 > 滑动窗口 本讲解主要通过题目来讲解以理解算法 讲解分为三部分&#xff1a;题目解析 > 算法讲解 > 编写代码 滑动窗口 在正式进入题目的讲解之前&#xff0c;得先了解一下什么是滑动窗口&#xff0c;以及应该在什…...

Linux -- 文件系统(文件在磁盘中的存储)

目录 前言&#xff1a; 了解机械磁盘 初始盘片与磁头 盘片是怎么存数据的呢&#xff1f; 详解盘片 如何访问磁盘中的一个扇区呢&#xff1f; -- CHS 定位法 磁盘的逻辑存储 LBA&#xff08;Logical Block Addressing --- 逻辑块寻址&#xff09; 如何将 LBA 地址转换为…...

微服务(Microservices),服务网格(Service Mesh)以及无服务器运算Serverless简单介绍

文章目录 什么是微服务?一、定义与特点二、优势三、组件与架构四、应用场景五、挑战与解决方案什么是服务网格?一、定义与特点二、核心组件三、主要功能四、实现工具五、应用场景六、优势与挑战什么是Serverless?一、定义与特点二、主要领域三、优势四、应用场景五、挑战三者…...

【AIGC】AI时代的数据安全:使用ChatGPT时的自查要点

博客主页&#xff1a; [小ᶻZ࿆] 本文专栏: AIGC | ChatGPT 文章目录 &#x1f4af;前言&#x1f4af;法律法规背景中华人民共和国保守秘密法中华人民共和国网络安全法中华人民共和国个人信息保护法遵守法律法规的重要性 &#x1f4af;ChatGPT的数据使用特点ChatGPT数据安全…...

开源代理解决 DeepSeek V4 与 Claude Code 的三个兼容性陷阱解决方案

在使用 Claude Code 的过程中&#xff0c;Anthropic 官方 API 的调用成本和网络问题一直是个痛点。DeepSeek V4 提供了兼容 Anthropic 格式的 API&#xff0c;价格优势明显&#xff0c;但实际对接时存在若干协议层面的差异&#xff0c;直接使用的话在进行 Agent spawn 工具调用…...

Next.js App Router与React Server Components实战:构建高性能Hacker News克隆

1. 项目概述&#xff1a;一个基于 Next.js App Router 与 React Server Components 的 Hacker News 克隆 如果你和我一样&#xff0c;在过去几年里一直在用 Next.js 的 Pages Router 构建应用&#xff0c;那么当 App Router 和 React Server Components 这两个概念一起出现时&…...

从-15dBm到+16dBm:STC8G信标FM射频放大链路实测与优化

1. 从零开始的FM信标信号放大实战 去年我在做一个野外定位项目时&#xff0c;遇到了一个棘手的问题&#xff1a;用STC8G微控制器生成的FM信标信号&#xff0c;在空旷地带的有效传输距离还不到50米。当时测得的初始输出功率只有-15dBm左右&#xff0c;这个强度连穿过一片小树林都…...

AI知识库构建实战:从RAG原理到工程化实现

1. 项目概述&#xff1a;一个面向AI的知识库构建方案最近在GitHub上看到一个挺有意思的项目&#xff0c;叫mcglothi/ai-knowledge-base。乍一看名字&#xff0c;你可能会觉得这又是一个关于如何用AI构建知识库的教程或者工具集。但当我深入去研究它的代码、文档和设计思路后&am…...

从零部署私有AI助手:igogpt项目实战与优化指南

1. 项目概述与核心价值最近在折腾AI应用部署的时候&#xff0c;发现了一个挺有意思的项目&#xff0c;叫igolaizola/igogpt。乍一看这个名字&#xff0c;可能会有点摸不着头脑&#xff0c;但如果你对开源AI模型部署和WebUI界面搭建感兴趣&#xff0c;那这个项目绝对值得你花时间…...

Python全栈学习路径:从基础语法到FastAPI实战部署

1. 从零到一&#xff1a;我的Python全栈学习路径与实战心得大家好&#xff0c;我是Brais Moure&#xff0c;一名有十多年经验的全栈工程师。过去几年&#xff0c;我一直在Twitch和YouTube上直播编程&#xff0c;并整理了一套完整的Python学习课程&#xff0c;也就是“Hello-Pyt…...

如何用PyWxDump破解微信数据解析的三大技术壁垒:从困境到突破的完整指南

如何用PyWxDump破解微信数据解析的三大技术壁垒&#xff1a;从困境到突破的完整指南 【免费下载链接】PyWxDump 删库 项目地址: https://gitcode.com/GitHub_Trending/py/PyWxDump 微信数据解析一直是个技术难题&#xff0c;就像试图打开一个不断变换密码的智能保险箱。…...

FPGA加速中性原子量子计算机的原子检测技术

1. 中性原子量子计算机的原子检测挑战量子计算领域近年来最激动人心的进展之一&#xff0c;就是中性原子量子计算机的快速发展。这种量子计算机利用激光镊子&#xff08;光学镊子&#xff09;阵列来捕获和排列中性原子&#xff08;如铷、铯等碱金属原子&#xff09;&#xff0c…...

认知神经科学研究报告【20260045】

文章目录ForeSight 5.87.5 自动设计8位CPU架构MiniCPU-8 架构自动涌现 — 测试报告结果ForeSight 5.87.5 自动设计8位CPU架构 MiniCPU-8 架构自动涌现 — 测试报告 测试目标&#xff1a;验证系统能否从零开始&#xff0c;自主发现并实现一个能正确执行斐波那契数列计算的8位C…...

Conforme配置管理范式:类型安全与约定优先的实践指南

1. 项目概述&#xff1a;Conforme&#xff0c;一个被低估的配置管理范式在软件开发和系统运维的日常里&#xff0c;我们总在和“配置”打交道。数据库连接字符串、API密钥、功能开关、环境变量……这些看似零散的信息&#xff0c;却像乐谱上的音符&#xff0c;共同决定了应用如…...