WPS 利用 宏 脚本拆分 Excel 多行文本到多行

news2025/7/28 8:59:16

文章目录

  • WPS 利用 宏 脚本拆分 Excel 多行文本到多行
  • 效果
  • 需求背景
  • 🛠 操作步骤
  • 代码实现
  • 代码详解
  • 使用场景
  • 注意事项
  • 总结


WPS 利用 宏 脚本拆分 Excel 多行文本到多行

在 Excel 工作表中,我们经常遇到一列中包含多行文本(用换行符分隔)的情况,比如备注、详细描述等信息。直接操作这些多行数据,尤其是批量处理时非常不方便。今天,我将分享一个利用 JavaScript 脚本(基于 Excel VBA 的 JS 脚本接口或者 Excel Online 脚本)自动拆分含多行文本的单元格,并将拆分后的数据逐行写入新工作表的实用方法。

效果

注:要把xlsx文件,另存为后缀为xlsm格式的才能创建宏
在这里插入图片描述
在这里插入图片描述
动图展示
在这里插入图片描述


需求背景

  • 原表结构:有一张工作表 sheet1,前四列分别是 A、B、C、D。
  • 目标:对于第 3 列(C列)中含有多行文本的单元格,将多行内容拆分成多行,每一行数据分别对应原来行的 A、B、D 列内容,拆分后写入新工作表 Sheet2
  • 结果Sheet2 每一行代表拆分后的一条记录,方便后续统计、筛选和处理。

🛠 操作步骤

  1. xlsx 文件另存为后缀为 .xlsm 格式(启用宏的 Excel 文件)
  2. 打开刚刚保存的 .xlsm 文件
  3. 点击菜单栏:工具 → 开发工具 → WPS 宏编辑器
  4. 复制下面的代码粘贴进去
  5. 点击“运行”按钮
  6. 弹出提示框 “拆分完成”,结果将写入 Sheet2,操作完成 ✅

在这里插入图片描述


代码实现

function splitMultilineTextToRows() {
    let sheet = Application.ActiveWorkbook.Sheets.Item("sheet1");
    let outputSheet = Application.ActiveWorkbook.Sheets.Item("Sheet2");

    outputSheet.Cells.ClearContents(); // 清空输出表格

    let outputRow = 1;

    for (let i = 1; i <= 100; i++) {
        let aCell = sheet.Cells.Item(i, 1); // A列
        let bCell = sheet.Cells.Item(i, 2); // B列
        let cCell = sheet.Cells.Item(i, 3); // C列
        let dCell = sheet.Cells.Item(i, 4); // D列

        let aText = aCell.Text;
        let bText = bCell.Text;
        let cText = cCell.Text;
        let dText = dCell.Text;

        if (cText.trim() !== "") {
            // 按换行符分割,支持 Windows 和 Unix 换行格式
            let lines = cText.split(/\r?\n/);

            for (let j = 0; j < lines.length; j++) {
                let line = lines[j].trim();
                if (line !== "") {
                    outputSheet.Cells.Item(outputRow, 1).Formula = "'" + aText; // 强制文本格式
                    outputSheet.Cells.Item(outputRow, 2).Formula = "'" + bText; // 强制文本格式
                    outputSheet.Cells.Item(outputRow, 3).Formula = line;
                    outputSheet.Cells.Item(outputRow, 4).Formula = "'" + dText; // 强制文本格式
                    outputRow++;
                }
            }
        }
    }

    alert("拆分完成,结果已写入 Sheet2");
}

代码详解

  1. 初始化工作表对象
    通过 Application.ActiveWorkbook.Sheets.Item() 获取原始数据表和输出表。

  2. 清空目标工作表
    调用 outputSheet.Cells.ClearContents() 先清空已有数据,避免叠加污染。

  3. 遍历数据行
    本例中固定遍历 1 到 100行(实际使用可根据需求动态调整)。

  4. 读取对应单元格内容
    利用 .Text 属性获取单元格显示文本。

  5. 判断并拆分多行文本
    对第3列(C列)文本按换行符拆分,兼容 Windows(\r\n)和 Unix(\n)格式。

  6. 逐行写入目标表
    拆分后的每行数据写入 Sheet2,对应 A、B、D 列的值保持不变。使用 ' 前缀强制 Excel 按文本处理单元格,避免自动格式转换。

  7. 完成提示
    脚本运行结束弹出提示框,告知用户处理完成。


使用场景

  • Excel 中导入数据时,备注列内包含多行条目,需拆分为独立记录
  • 将不规范的多行文本数据规范化成单行,方便批量操作与分析
  • 结合自动化脚本,实现数据清洗和预处理,提升办公效率

注意事项

  • 如果数据行数不固定,可改成动态获取,比如:

    let lastRow = sheet.UsedRange.Rows.Count;
    
  • 脚本基于 Excel 支持的 JS API,适用于 Office 365 的 Excel Online 脚本环境或者支持 JavaScript 的 VBA 环境。

  • 如果用纯 VBA 实现,语法会有差异,需做相应调整。


总结

本文分享的 splitMultilineTextToRows 函数,有效解决了 Excel 多行文本拆分难题,方便日常办公中数据清洗和规范化。通过简单的脚本自动化,大幅度提升了处理效率,避免手工操作繁琐与出错。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2398685.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

AI“实体化”革命:具身智能如何重构体育、工业与未来生活

近年来&#xff0c;人工智能&#xff08;AI&#xff09;技术的飞速发展正在重塑各行各业&#xff0c;而具身智能&#xff08;Embodied AI&#xff09;作为AI领域的重要分支&#xff0c;正逐渐从实验室走向现实应用。具身智能的核心在于让AI系统具备物理实体&#xff0c;能够与环…

R语言基础| 创建数据集

在R语言中&#xff0c;有多种数据类型&#xff0c;用以存储和处理数据。每种数据类型都有其特定的用途和操作函数&#xff0c;使得R语言在处理各种数据分析任务时非常灵活和强大&#xff1a; 向量&#xff08;Vector&#xff09;: 向量是R语言中最基本的数据类型&#xff0c;它…

Centos7搭建zabbix6.0

此方法适用于zabbix6以上版本zabbix6.0前期环境准备&#xff1a;Lamp&#xff08;linux httpd mysql8.0 php&#xff09;mysql官网下载位置&#xff1a;https://dev.mysql.com/downloads/mysql/Zabbix源码包地址&#xff1a;https://www.zabbix.com/cn/download_sourcesZabbix6…

Docker 部署前后端分离项目

1.Docker 1.1 什么是 Docker &#xff1f; Docker 是一种开源的 容器化平台&#xff0c;用于开发、部署和运行应用程序。它通过 容器&#xff08;Container&#xff09; 技术&#xff0c;将应用程序及其依赖项打包在一个轻量级、可移植的环境中&#xff0c;确保应用在不同计算…

云游戏混合架构

云游戏混合架构通过整合本地计算资源与云端能力&#xff0c;形成了灵活且高性能的技术体系&#xff0c;其核心架构及技术特征可概括如下&#xff1a; 一、混合架构的典型模式 分层混合模式‌ 前端应用部署于公有云&#xff08;如渲染流化服务&#xff09;&#xff0c;后端逻辑…

【小红书】API接口,获取笔记核心数据

小红书笔记核心数据API接口详解 - 深圳小于科技提供专业数据服务 深圳小于科技&#xff08;官网&#xff1a;https://www.szlessthan.com&#xff09;推出的小红书笔记核心数据API接口&#xff0c;为开发者提供精准的笔记互动数据分析能力&#xff0c;助力内容运营与商业决策。…

会议室钥匙总丢失?换预约功能的智能门锁更安全

在企业日常运营中&#xff0c;会议室作为重要的沟通与协作场所&#xff0c;其管理效率与安全性直接影响着企业的运作顺畅度。然而&#xff0c;传统会议室管理方式中钥匙丢失、管理不便等问题频发&#xff0c;给企业带来了不少困扰。近期&#xff0c;某企业引入了启辰智慧预约系…

Redis底层数据结构之跳表(SkipList)

SkipList是Redis有序结合ZSet底层的数据结构&#xff0c;也是ZSet的灵魂所在。与之相应的&#xff0c;Redis还有一个无序集合Set&#xff0c;这两个在底层的实现是不一样的。 标准的SkipList&#xff1a; 跳表的本质是一个链表。链表这种结构虽然简单清晰&#xff0c;但是在查…

Ubuntu安装Docker命令清单(以20.04为例)

在你虚拟机上完成Ubuntu的下载后打开终端&#xff01;&#xff01;&#xff01; Ubuntu安装Docker终极命令清单&#xff08;以20.04为例&#xff09; # 1. 卸载旧版本&#xff08;全新系统可跳过&#xff09; sudo apt-get remove docker docker-engine docker.io containerd …

HarmonyOS Next 弹窗系列教程(2)

HarmonyOS Next 弹窗系列教程&#xff08;2&#xff09; 上一章节我们讲了自定义弹出框 (openCustomDialog)&#xff0c;那对于一些简单的业务场景&#xff0c;不一定需要都是自定义&#xff0c;也可以使用 HarmonyOS Next 内置的一些弹窗效果。比如&#xff1a; 名称描述不依…

中小企业搭建网站选择虚拟主机还是云服务器?华为云有话说

这是一个很常见的问题&#xff0c;许多小企业在搭建网站时都会面临这个选择。虚拟主机和云服务器都有各自的优缺点&#xff0c;需要根据自己的需求和预算来决定。 虚拟主机是指将一台物理服务器分割成多个虚拟空间&#xff0c;每个空间都可以运行一个网站。虚拟主机的优点是价格…

使用 HTML + JavaScript 在高德地图上实现物流轨迹跟踪系统

在电商行业蓬勃发展的今天&#xff0c;物流信息查询已成为人们日常生活中的重要需求。本文将详细介绍如何基于高德地图 API 利用 HTML JavaScript 实现物流轨迹跟踪系统的开发。 效果演示 项目概述 本项目主要包含以下核心功能&#xff1a; 地图初始化与展示运单号查询功能…

19-项目部署(Linux)

Linux是一套免费使用和自由传播的操作系统。说到操作系统&#xff0c;大家比较熟知的应该就是Windows和MacOS操作系统&#xff0c;我们今天所学习的Linux也是一款操作系统。 我们作为javaEE开发工程师&#xff0c;将来在企业中开发时会涉及到很多的数据库、中间件等技术&#…

html基础01:前端基础知识学习

html基础01&#xff1a;前端基础知识学习 1.个人建立打造 -- 之前知识的小总结1.1个人简历展示1.2简历信息填写页面 1.个人建立打造 – 之前知识的小总结 1.1个人简历展示 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8&qu…

【RoadRunner】自动驾驶模拟3D场景构建 | 软件简介与视角控制

&#x1f4af; 欢迎光临清流君的博客小天地&#xff0c;这里是我分享技术与心得的温馨角落 &#x1f4af; &#x1f525; 个人主页:【清流君】&#x1f525; &#x1f4da; 系列专栏: 运动控制 | 决策规划 | 机器人数值优化 &#x1f4da; &#x1f31f;始终保持好奇心&…

基于RK3576+FPGA芯片构建的CODESYS软PLC Linux实时系统方案,支持6T AI算力

基于RK3576芯片构建的CODESYS软PLC Linux实时系统方案&#xff0c;结合了异构计算架构与工业实时控制技术&#xff0c;主要特点如下&#xff1a; 一、硬件架构设计 ‌异构多核协同‌ ‌Cortex-A72四核‌&#xff08;2.3GHz&#xff09;&#xff1a;处理运动轨迹规划、AI视觉等…

适配器模式:让不兼容接口协同工作

文章目录 1. 适配器模式概述2. 适配器模式的分类2.1 类适配器2.2 对象适配器 3. 适配器模式的结构4. C#实现适配器模式4.1 对象适配器实现4.2 类适配器实现 5. 适配器模式的实际应用场景5.1 第三方库集成5.2 遗留系统集成5.3 系统重构与升级5.4 跨平台开发 6. 类适配器与对象适…

DDP与FSDP:分布式训练技术全解析

DDP与FSDP:分布式训练技术全解析 DDP(Distributed Data Parallel)和 FSDP(Fully Sharded Data Parallel)均为用于深度学习模型训练的分布式训练技术,二者借助多 GPU 或多节点来提升训练速度。 1. DDP(Distributed Data Parallel) 实现原理 数据并行:把相同的模型复…

【Spring AI 1.0.0】Spring AI 1.0.0框架快速入门(1)——Chat Client API

Spring AI框架快速入门 一、前言二、前期准备2.1 运行环境2.2 maven配置2.3 api-key申请 三、Chat Client API3.1 导入pom依赖3.2 配置application.properties文件3.3 创建 ChatClient3.3.1 使用自动配置的 ChatClient.Builder3.3.2 使用多个聊天模型 3.4 ChatClient请求3.5 Ch…

【笔记】在 MSYS2(MINGW64)中正确安装 Rust

#工作记录 1. 环境信息 Windows系统: MSYS2 MINGW64当前时间: 2025年6月1日Rust 版本: rustc 1.87.0 (17067e9ac 2025-05-09) (Rev2, Built by MSYS2 project) 2. 安装步骤 步骤 1: 更新系统包数据库并升级已安装的包 首先&#xff0c;确保我们的 MSYS2 系统是最新状态。打…