VBA实例-从Excel整理数据到Word

实现目录

  • 功能需求
    • 数据结构
    • 复制数据到新sheet并分类数据
      • 添加序号、日期、时间三列数据
        • 添加序号列
        • 添加时间列
      • 将名称和类别复制到word文件中
        • 将参数5和参数9中的一个复制到word文件中
    • 实例

功能需求

1、将原始数据中不要的数据剔除
2、原始数据中增加序号、日期和时间三列数据,并且按报名类别进行分类。
3、形成时间表
4、将名称和类别复制到评分表中,一个名称一个word文档
5、将数据中的参数5和参数9复制到评分表中

数据结构

在这里插入图片描述

复制数据到新sheet并分类数据

If CheckIsExistsSheetName("时间表") ThenThisWorkbook.Sheets("时间表").DeleteEnd IfApplication.DisplayAlerts = TrueFor i = 2 To SumRowsrefValue = SourceSheet.Cells(i, 5) * 1If refValue > finalValue ThenfinalValue = refValueEnd IfNext iFor TargetDeviceSerialNumber = 1 To finalValueSet Gradeword = wdapp.Documents.Open(ThisWorkbook.Path & "\评分表.docx")Debug.Print Gradeword.Tables(1).Cell(3, 1).Range.TextGradeword.Sentences(2).Characters(27) = EquipSectionsheet.Cells(TargetDeviceSerialNumber + 1, 3).Text Gradeword.Sentences(2).Characters(8) = EquipSectionsheet.Cells(TargetDeviceSerialNumber + 1, 2).Text jj = 3For j = 2 To SumRowsrefValue = SourceSheet.Cells(j, 5) * 1If refValue = TargetDeviceSerialNumber ThenUseRows = UseRows + 1SourceSheet.Rows(j).Copy DestSheet.Cells(UseRows, 1)If IsEmpty(SourceSheet.Cells(j, 10)) ThenGradeword.Tables(1).Cell(jj, 2).Range = SourceSheet.Cells(j, 14).TextElseGradeword.Tables(1).Cell(jj, 2).Range = SourceSheet.Cells(j, 10).TextEnd Ifjj = jj + 1End IfNext jarr(TargetDeviceSerialNumber) = UseRows'Debug.Print'Gradeword.SaveAs2 (ThisWorkbook.Path + "\" + EquipSectionsheet.Cells(TargetDeviceSerialNumber + 1, 2).Text + "评分表" + "(" + EquipSectionsheet.Cells(TargetDeviceSerialNumber + 1, 3).Text + ")" + ".docx")Gradeword.CloseSet Gradeword = NothingNext TargetDeviceSerialNumberfinalRows = UseRowsDestSheet.Columns("A:D").DeleteDestSheet.Range("C1").EntireColumn.Insert '序号DestSheet.Range("C1").EntireColumn.Insert '日期DestSheet.Range("C1").EntireColumn.Insert '时间DestSheet.Range("C1") = "序号"DestSheet.Range("D1") = "日期"DestSheet.Range("E1") = "时间"DestSheet.Cells(2, 5) = "9:00"For k = 2 To SumRowsDestSheet.Cells(k, 3) = "=COUNT($C$1:C" & (k - 1) & ")+1"Next kFor kk = 2 To SumRows - 1Day_mod = kk Mod (AM_ContrlRow + PM_ContrlRow)If Day_mod < AM_ContrlRow + 1 ThenDestSheet.Cells(Day_mod + 1, 5) = "=TEXT(E" & kk & "+" & Chr(34) & "0:10" & Chr(34) & "," & Chr(34) & "h:mm" & Chr(34) & ")"ElseIf Day_mod = AM_ContrlRow + 1 ThenDestSheet.Cells(Day_mod + 1, 5) = "14:00"ElseDestSheet.Cells(Day_mod + 1, 5) = "=TEXT(E" & kk & "+" & Chr(34) & "0:10" & Chr(34) & "," & Chr(34) & "h:mm" & Chr(34) & ")"End IfNext kk

添加序号、日期、时间三列数据

添加序号列

往单元格中添加公式”=COUNT($C$1:C(k-1))+1“即可生成序号。

For k = 2 To SumRowsDestSheet.Cells(k, 3) = "=COUNT($C$1:C" & (k - 1) & ")+1"Next k
添加时间列

往单元格中添加类似于”=TEXT(E2+“0:10”,“h:mm”)“的公式,即可生成每隔10分钟的序列。

**For kk = 2 To SumRows - 1Day_mod = kk Mod (AM_ContrlRow + PM_ContrlRow)If Day_mod < AM_ContrlRow + 1 ThenDestSheet.Cells(Day_mod + 1, 5) = "=TEXT(E" & kk & "+" & Chr(34) & "0:10" & Chr(34) & "," & Chr(34) & "h:mm" & Chr(34) & ")"ElseIf Day_mod = AM_ContrlRow + 1 ThenDestSheet.Cells(Day_mod + 1, 5) = "14:00"ElseDestSheet.Cells(Day_mod + 1, 5) = "=TEXT(E" & kk & "+" & Chr(34) & "0:10" & Chr(34) & "," & Chr(34) & "h:mm" & Chr(34) & ")"End IfNext kk**

将名称和类别复制到word文件中

Gradeword.Sentences(2).Characters(27) = EquipSectionsheet.Cells(TargetDeviceSerialNumber + 1, 3).Text Gradeword.Sentences(2).Characters(8) = EquipSectionsheet.Cells(TargetDeviceSerialNumber + 1, 2).Text 这两句语句是将
在这里插入图片描述
中的名称和类别分别填写到对应的word文件档-----"评分表.docx"中名称和类别处
在这里插入图片描述
即:
在这里插入图片描述

将参数5和参数9中的一个复制到word文件中

将参数5和参数9中的一个复现到 "评分表.docx"中参数5/参数9这列中

If IsEmpty(SourceSheet.Cells(j, 10)) ThenGradeword.Tables(1).Cell(jj, 2).Range = SourceSheet.Cells(j, 14).TextElseGradeword.Tables(1).Cell(jj, 2).Range = SourceSheet.Cells(j, 10).TextEnd Ifjj = jj + 1

在这里插入图片描述

实例

实例

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

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

相关文章

opengl 写一个3D立方体——计算机图形学编程 第4章 管理3D图形数据 笔记

计算机图形学编程&#xff08;使用OpenGL和C&#xff09; 第4章 管理3D图形数据 笔记 数据处理 想要绘制一个对象&#xff0c;它的顶点数据需要发送给顶点着色器。通常会把顶点数据在C端放入 一个缓冲区&#xff0c;并把这个缓冲区和着色器中声明的顶点属性相关联。 初始化立…

【Unity2D 2022:UI】无法拖拽TextMeshPro组件

在预制体Card上挂载了四个Text Mesh Pro组件&#xff0c;分别命名为Name、HP、ATK、Description。 将预制体Card挂载脚本CardDisplay用来在预制体上显示属性&#xff0c;并创建TextMeshPro对象来接收TextMeshPro组件。 using TMPro; using UnityEngine; using UnityEngine.UI;…

leetcode日记(49)旋转链表

其实不难&#xff0c;就是根据kk%len判断需要旋转的位置&#xff0c;再将后半段接在前半段前面就行。 /*** Definition for singly-linked list.* struct ListNode {* int val;* ListNode *next;* ListNode() : val(0), next(nullptr) {}* ListNode(int x) : …

2、springboot3 vue3开发平台-后端-基础数据准备,MybatisPlus整合

文章目录 1. 基础数据准备2. 整合MybatisPlus3. MybatisPlus 配置3.1 数据源配置3.2 mybatis-plus 分页插件配置3.3 mybatis-plus 自动填充3.4 代码生成器 1. 基础数据准备 直接拿前辈做的表结构使用。 /*Navicat Premium Data TransferSource Server : localhost_my…

sql server 连接报错error 40

做个简单的记录,造成40 的原因有很多,你的错误并不一定就是我遇到的这种情况. 错误描述: 首先我在使用ssms 工具连接的时候是可以正常连接的,也能对数据库进行操作. 在使用 ef core 连接 Sql Server 时报错: Microsoft.Data.SqlClient.SqlException (0x80131904): A network-r…

【Linux】从零开始认识多线程 --- 线程互斥

人生有许多事情 正如船后的波纹 总要过后才觉得美的 -- 余光中 线程互斥 1 线程类的封装1.1 框架搭建1.2 线程启动1.3 线程终止1.4 线程等待1.5 运行测试 2 线程互斥2.1 多线程访问的问题2.2 解决办法 --- 锁2.3 从原理角度理解锁 Thanks♪(&#xff65;ω&#xff65;)&am…

后端返回一个图片链接,前端如何实现下载功能?

纯原创文章&#xff0c;转载请说明来源。 一、背景 要实现一个下载功能&#xff0c;后端直接返回了一个图片的地址https://xxxxx/pic.jpg。如果我们直接通过window.open(url, _blank) 的方式去下载这个图片&#xff0c;会发现 Chrome 浏览器会对这个图片进行预览&#xff0c;…

氧气传感器在汽车制氧检测中的应用

在当今汽车工业中&#xff0c;技术的快速发展不仅带来了驾驶安全性和舒适性的显著提升&#xff0c;还为车辆增加了各种智能功能&#xff0c;以应对不同的驾驶环境和需求。氧气传感器作为一种关键的技术装置&#xff0c;在汽车制氧检测系统中的应用&#xff0c;尤其是针对疲劳驾…

DDoS 究竟在攻击什么?

分布式拒绝服务&#xff08;DDoS&#xff09;攻击是一种常见的网络攻击形式&#xff0c;攻击者通过向目标服务端发送大量的请求&#xff0c;使目标服务端无法进行网络连接&#xff0c;无法正常提供服务。 DDoS 攻击通常是由大量的分布在全球各地的 “僵尸” 计算机&#xff08…

npm下载pnpm

一、提供node_global和node_cache的文件夹 若不存在&#xff0c;可自行新建文件夹 二、配置环境变量 配置NODE_PATH变量&#xff1a; 配置Path变量&#xff1a; 三、执行cmd指令 npm config set prefix "D:\Configure\nodejs\node_global" npm config set cache &…

【Python】Facebook开源时间序列数据预测模型Prophet

文章目录 一、简介二、项目的文件解读三、Prophet类主要方法和参数3.1 主要参数3.2 主要方法 四、用法示例 一、简介 Prophet 是由 Facebook 开发的一个开源工具&#xff0c;用于时间序列数据的预测。它特别适用于处理具有强季节性和趋势的时间序列数据&#xff0c;并且对节假…

【数学建模】——【python】实现【最短路径】【最小生成树】【复杂网络分析】

目录 1. 最短路径问题 - 绘制城市间旅行最短路径图 题目描述&#xff1a; 要求&#xff1a; 示例数据&#xff1a; python 代码实现 实现思想&#xff1a; 要点&#xff1a; 2. 最小生成树问题 - Kruskal算法绘制MST 题目描述&#xff1a; 要求&#xff1a; 示例数据…

推荐系统三十六式学习笔记:工程篇.常见架构24|典型的信息流架构是什么样的

目录 整体框架数据模型1.内容即Activity2.关系即连接 动态发布信息流排序数据管道总结 从今天起&#xff0c;我们不再单独介绍推荐算法的原理&#xff0c;而是开始进入一个新的模块-工程篇。 在工程实践的部分中&#xff0c;我首先介绍的内容是当今最热门的信息流架构。 信息…

C#使用Clipper2进行多边形合并、相交、相减、异或的示例

Clipper2库介绍 开源库介绍&#xff1a; Clipper2在Github上的地址&#xff1a;https://github.com/AngusJohnson/Clipper2 Clipper2库对简单和复杂多边形执行交集&#xff08;Intersection&#xff09;、并集&#xff08;Union&#xff09;、差分&#xff08;Difference&…

c生万物系列(封装)

为了对c语言进行封装&#xff0c;笔者参考了lw_oopc等开源库&#xff0c;决定使用宏对结构体进行封装。 先说一下大致思想&#xff1a;通过宏&#xff0c;结构体和文件来实现封装。 大概步骤&#xff1a;抽象出类-> 使用lw_oopc库进行封装->定义接口封装底层实现 ->…

GAMES104:05游戏引擎中的渲染系统2:渲染中的光照、材质和shader-学习笔记

文章目录 一、渲染方程及其挑战二、基础光照解决方案-简化版简化光源简化材质简化阴影 三、基于预计算的全局光照3.1挑战和计算思路傅里叶变换球谐函数&#xff08;Spherical Harmonics&#xff09; 3.2 SH Lightmap&#xff1a;预计算 GI3.3 探针 Probe&#xff1a;Light Prob…

【React 】开发环境搭建详细指南

文章目录 一、准备工作1. 安装 Node.js 和 npm2. 选择代码编辑器 二、创建 React 项目1. 使用 Create React App2. 手动配置 React 项目 三、集成开发工具1. ESLint 和 Prettier2. 使用 Git 进行版本控制 在现代前端开发中&#xff0c;React 是一个非常流行的框架&#xff0c;用…

sed利用脚本处理文件

一、sed是什么 sed 命令是利用脚本来处理文本文件。它可以依照脚本的指令来处理、编辑文本文件。主要用来自动编 辑一个或多个文件、简化对文件的反复操作、编写转换程序等。 二、sed的原理 读入新的一行内容到缓存空间&#xff1b; 从指定的操作指令中取出第一条指令&…

nodejs - 接口 学习笔记

一、简介 1-1、是什么 接口是 前后端通信的桥梁 简单理解&#xff1a;一个接口就是 服务中的一个路由规则&#xff0c;根据请求响应结果 接口的英文单词是 API (Application Program Interface)&#xff0c;所以有时也称之为 API 接口 这里的接口指的是『数据接口』&#xff…

goland设置Gin框架中tmpl模板的语法提示的方法

goland设置Gin框架中tmpl模板的语法提示的方法 前言 在Gin中&#xff0c;我们要使用 .tmpl 结尾的模板文件&#xff0c;但是我们在new的时候&#xff0c;发现没有对应的文件&#xff0c;所以它就会被当成普通的文件来进行解析&#xff0c;因此也没有提示&#xff0c;这对我们…