vba学习系列(4)-- index()提取指定单元格并保留字体格式

系列文章目录

文章目录

  • 系列文章目录
  • 一、目标需求
  • 二、使用步骤
    • 1.VBA程序
    • 2.VBA简要程序
  • 总结

一、目标需求

工作表2 B列中姓名,在工作表1 C列中存在相同姓名时,提取工作表2 AK列的对应单元格内容;
工作表2名称:OQC
工作表1名称:汇总

二、使用步骤

1.VBA程序

代码如下(示例):


Sub ExtractData()Dim ws1 As Worksheet, ws2 As WorksheetDim rng1 As Range, rng2, rng3, rng4, sourceCell, destinationCell As Range, cell As RangeDim i, j As IntegerDim charColor As LongDim sourceValue As StringDim charIndex As IntegerDim formattedText As StringDim fontColors() As LongDim colorIndex As IntegerDim color As Integer'设置工作表1和工作表2Set ws1 = ThisWorkbook.Sheets("汇总")Set ws2 = ThisWorkbook.Sheets("OQC")'设置范围对象Set rng1 = ws1.Range("C:C")Set rng2 = ws2.Range("B:B")Set rng3 = ws1.Range("F3:F100")Set rng4 = ws2.Range("AK2:AK100")rng3.Interior.colorIndex = xlNonerng3.Font.colorIndex = xlNonerng3.Font.colorIndex = xlAutomatic'遍历工作表1的每个单元格For Each cell In rng1If cell.value <> "" Then'在工作表2的B列查找匹配项Set matchcell = rng2.Find(What:=cell.value, LookIn:=xlValues, LookAt:=xlWhole)If Not matchcell Is Nothing Then'如果找到匹配项,则提取工作表2对应的AK列数据a = matchcell.RowSet sourceCell = ws2.Cells(matchcell.Row, "AK")Set destinationCell = ws1.Cells(cell.Row, "F")Set targetCell = ws1.Cells(cell.Row, "F")destinationCell.value = ""'Text = sourceCell.valueSet rngSource = ws2.Range("AK" & a)ReDim fontColors(0 To rngSource.Characters.Count)For j = 1 To sourceCell.Characters.CountcharColor = sourceCell.Characters(j, 1).Font.colorfontColors(j) = charColorNext jFor j = 1 To sourceCell.Characters.CountWith destinationCell.Characters(j, 1).Fontcolor = fontColors(j)End WithNext jws2.Range("AK" & a).Copy Destination:=ws1.Cells(cell.Row, "F")                    '定义要使用的颜色数组'Colors = Array(vbRed, vbBlue, vbGreen)'For i = 1 To sourceCell.Characters.Count'Set charFormat = sourceCell.Characters(Start:=i, Length:=1).Font'targetCell.Characters(Start:=i, Length:=1).Font.color = charFormat.color'targetCell.Characters(Start:=i, Length:=1).Font.Bold = charFormat.Bold' 如果需要复制其他字体属性,比如Italic或Underline,可以继续添加代码行'Next i                                    'ReDim fontColors(1 To sourceCell.Characters.Count)'ReDim fontColors(2 To rngSource.Characters.Count)'destinationCell.value = sourceCell.value'sourceCell.Copy Destination:=destinationCell'destinationCell.Interior.color = sourceCell.Interior.color'destinationCell.Font.color = sourceCell.Font.color                                'ws1.Cells(cell.Row, "F").value = ws2.Cells(matchcell.Row, "AK").value'ws1.Cells(Cell.Row, "F").Font.Color = ws2.Cells(matchCell.Row, "AK").Font.Color'ws1.Cells(Cell.Row, "F").Font.ColorIndex = ws2.Cells(matchCell.Row, "AK").Font.ColorIndex'ws1.Cells(Cell.Row, "F").Interior.Color = ws2.Cells(matchCell.Row, "AK").Interior.Color'ws1.Cells(Cell.Row, "F").Interior.ColorIndex = ws2.Cells(matchCell.Row, "AK").Interior.ColorIndex'ws1.Cells(Cell.Row, "F").HorizontalAlignment = ws2.Cells(matchCell.Row, "AK").HorizontalAlignment'ws1.Cells(Cell.Row, "F").VerticalAlignment = ws2.Cells(matchCell.Row, "AK").VerticalAlignment'ws1.Cells(Cell.Row, "F").Borders.LineStyle = ws2.Cells(matchCell.Row, "AK").Borders.LineStyle'ws1.Cells(Cell.Row, "F").Borders.Color = ws2.Cells(matchCell.Row, "AK").Borders.Color'ws1.Cells(Cell.Row, "F").Font.Name = ws2.Cells(matchCell.Row, "AK").Font.Name'ws1.Cells(Cell.Row, "F").Font.Size = ws2.Cells(matchCell.Row, "AK").Font.Size'ws1.Cells(Cell.Row, "F").Font.Bold = ws2.Cells(matchCell.Row, "AK").Font.Bold'ws1.Cells(Cell.Row, "F").Font.Italic = ws2.Cells(matchCell.Row, "AK").Font.Italic                        End IfEnd IfNext cell
End Sub

2.VBA简要程序


Sub ExtractData()Dim ws1 As Worksheet, ws2 As WorksheetDim rng1 As Range, rng2, rng3, rng4, sourceCell, destinationCell As Range, cell As RangeDim i, j As IntegerDim charColor As LongDim sourceValue As StringDim charIndex As IntegerDim formattedText As StringDim fontColors() As LongDim colorIndex As IntegerDim color As Integer'设置工作表1和工作表2Set ws1 = ThisWorkbook.Sheets("汇总")Set ws2 = ThisWorkbook.Sheets("OQC3")'设置范围对象Set rng1 = ws1.Range("C:C")Set rng2 = ws2.Range("B:B")Set rng3 = ws1.Range("F3:F100")Set rng4 = ws2.Range("AK2:AK100")rng3.Interior.colorIndex = xlNonerng3.Font.colorIndex = xlNonerng3.Font.colorIndex = xlAutomatic'遍历工作表1的每个单元格For Each cell In rng1If cell.value <> "" Then'在工作表2的B列查找匹配项Set matchcell = rng2.Find(What:=cell.value, LookIn:=xlValues, LookAt:=xlWhole)If Not matchcell Is Nothing Then'如果找到匹配项,则提取工作表2对应的AK列数据a = matchcell.RowSet sourceCell = ws2.Cells(matchcell.Row, "AK")Set destinationCell = ws1.Cells(cell.Row, "F")Set targetCell = ws1.Cells(cell.Row, "F")destinationCell.value = ""Set rngSource = ws2.Range("AK" & a)ReDim fontColors(0 To rngSource.Characters.Count)For j = 1 To sourceCell.Characters.CountcharColor = sourceCell.Characters(j, 1).Font.colorfontColors(j) = charColorNext jFor j = 1 To sourceCell.Characters.CountWith destinationCell.Characters(j, 1).Fontcolor = fontColors(j)End WithNext jws2.Range("AK" & a).Copy Destination:=ws1.Cells(cell.Row, "F")End IfEnd IfNext cell
End Sub

总结

分享:
接受可以让我面对所有的问题,当我感到焦虑的时候,通常是因为我发现自己不能接受生活中的一些人、地方、事情,直到我完全接受了它们,我才能获得心灵上的安宁。除非我完全的接受生活,否则我将无法获得快乐。我不需要再纠结这个世界上有什么需要改变而是关注我自己的态度需要发生怎样的改变;

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

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

相关文章

AGI的智力有可能在两年内超过人类水平

特斯拉CEO埃隆马斯克近日与挪威银行投资管理基金CEO坦根的访谈中表示&#xff0c;AGI的智力将在两年内可能超过人类智力&#xff0c;在未来五年内&#xff0c;AI的能力很可能超过所有人类。 马斯克透漏&#xff0c;去年人工智能发展过程中的主要制约因素是缺少高性能芯片&#…

基于springboot实现人事管理系统项目【项目源码+论文说明】

基于springboot实现人事管理系统演示 摘要 随着信息技术在管理上越来越深入而广泛的应用&#xff0c;作为学校以及一些培训机构&#xff0c;都在用信息化战术来部署线上学习以及线上考试&#xff0c;可以与线下的考试有机的结合在一起&#xff0c;实现基于vue的人事系统在技术…

c++ 栈溢出问题

示例代码: #include <iostream> #include <chrono> #include <fstream>int main() {// 测量内存操作的执行时间int num = 1024 * 1024;int arry[num] = {2};int arry_tmp[num] = {0};std::ofstream outfile("data.bin", std::ios::binary | std:…

【LeetCode热题100】【二分查找】搜索二维矩阵

题目链接&#xff1a;74. 搜索二维矩阵 - 力扣&#xff08;LeetCode&#xff09; 在一个有序二维数组里面查找元素&#xff0c;同【LeetCode热题100】【矩阵】搜索二维矩阵 II-CSDN博客 如果用二分查找&#xff0c;时间复杂度是log(mn)&#xff0c;但是可以实现时间复杂度为O…

交通大模型与时序大模型整理【共15篇工作】【附开源代码】

随着城市化进程的加速和交通系统的不断发展&#xff0c;对交通数据和时序数据的整理与分析变得尤为重要。本文旨在探讨交通大模型与时序大模型的整理及其在城市规划、交通管理等领域的应用。交通大模型涉及交通流量、道路网络、交通规划等方面的数据&#xff0c;而时序大模型则…

代码随想录-算法训练营day10【栈与队列01:理论基础、用栈实现队列、用队列实现栈】

代码随想录-035期-算法训练营【博客笔记汇总表】-CSDN博客 第五章 栈与队列part01 ● day 1 任务以及具体安排&#xff1a;https://docs.qq.com/doc/DUG9UR2ZUc3BjRUdY ● day 2 任务以及具体安排&#xff1a;https://docs.qq.com/doc/DUGRwWXNOVEpyaVpG ● day 3 任务以及…

ZooKeeper临时有序节点生成过程以及序号超过最大值的处理思路

目录 ZooKeeper临时有序节点生成过程 ZooKeeper序号超过最大值的处理 ZooKeeper临时有序节点生成过程 创建节点时指定类型 当客户端向ZooKeeper请求创建节点时&#xff0c;需要指定节点类型。对于临时有序节点&#xff0c;应使用CreateMode.EPHEMERAL_SEQUENTIAL标志。这告诉…

IP定位技术原理详细阐述

IP定位技术原理主要基于IP地址与地理位置之间的关联&#xff0c;通过一系列的技术手段&#xff0c;实现对网络设备的物理位置进行精确或大致的定位。以下是对IP定位技术原理的详细阐述。 首先&#xff0c;我们需要了解IP地址的基本概念。IP地址是互联网协议地址的简称&#xff…

大模型日报|今日必读的10篇大模型论文

大家好&#xff0c;今日必读的大模型论文来啦&#xff01; 1.谷歌推出新型 Transformer 架构&#xff1a;反馈注意力就是工作记忆 虽然 Transformer 给深度学习带来了革命性的变化&#xff0c;但二次注意复杂性阻碍了其处理无限长输入的能力。 谷歌研究团队提出了一种新型 T…

前端开发攻略---从源码角度分析Vue3的Propy比Vue2的defineproperty到底好在哪里。一篇文章让你彻底弄懂响应式原理。

1、思考 Vue的响应式到底要干什么&#xff1f; 无非就是要知道当你读取对象的时候&#xff0c;要知道它读了。要做一些别的事情无非就是要知道当你修改对象的时候&#xff0c;要知道它改了。要做一些别的事情所以要想一个办法&#xff0c;把读取和修改的动作变成一个函数&#…

xcode c++项目设置运行时参数

在 Xcode 项目中&#xff0c;你可以通过配置 scheme 来指定在运行时传递的参数。以下是在 Xcode 中设置运行时参数的步骤&#xff1a; 打开 Xcode&#xff0c;并打开你的项目。在 Xcode 菜单栏中&#xff0c;选择 "Product" -> "Scheme" -> "E…

前端实现下载的2种方法(个人总结)

一.后端在接口指明了下载的类型是blob类型 要实现下载项目数据并成为excel格式的 以这个接口为例: export const conversationDown () > {return http({url: /conversation/down,method: GET,responseType: blob}) } const handleDownload async () > {const res …

每日一练

这题我主要用的思想是:动态规划 1.状态表示&#xff1a;以i位置为结尾的字符串是否可以用字典表示&#xff0c;然后就可以拆分成 j ~ i 为字典中的最后一个单词&#xff0c;此时 0 < j < i (1.有可能全部为字典的一个单词&#xff0c;2.有可能只有一个字母的单词)&#x…

光纤网络的星际旅行:SFP与QSFP光模块的技术演进

&#x1f389;光模块作为完成光电转换的光器件&#xff0c;在光通信网络中必不可少&#xff0c;常见的有千兆/万兆光模块、SFP/SFP/QSFP28光模块等&#xff0c;那你知道这些光模块都是如何分类的吗&#xff1f;另外还有哪些类型&#xff1f;接下来我会在本文详细介绍光模块是如…

平台工程在企业数字化转型中的战略价值

要建设成功、有弹性和面向未来的平台&#xff0c;需要做到这三点&#xff1a;了解需求、预测可能面临的挑战并制定经得起时间考验的解决方案。 了解需求是指理解利益相关者的要求和目标&#xff0c;无论他们是最终用户、开发人员还是平台生态系统中的其他相关方。这包括开展全面…

排序算法。

冒泡排序: 基本&#xff1a; private static void sort(int[] a){for (int i 0; i < a.length-1; i) {for (int j 0; j < a.length-i-1; j) {if (a[j]>a[j1]){swap(a,j,j1);}}}} private static void swap(int[] a,int i,int j){int tempa[i];a[i]a[j];a[j]temp;} …

MathType安装导致的Word粘贴操作出现运行时错误‘53’:文件未找到:MathPage.WLL

MathType安装导致的Word粘贴操作出现运行时错误‘53’&#xff1a;文件未找到&#xff1a;MathPage.WLL 解决方案 1、确定自己电脑的位数&#xff1b; 2、右击MathType桌面图标&#xff0c;点击“打开文件所在位置”&#xff0c;然后找到MathPage.WLL &#xff0c;复制一份进行…

二级综合医院云HIS系统源码,B/S架构,采用JAVA编程,集成相关医保接口

二级医院云HIS系统源码 云HIS系统是一款满足基层医院各类业务需要的健康云产品。该产品能帮助基层医院完成日常各类业务&#xff0c;提供病患预约挂号支持、病患问诊、电子病历、开药发药、会员管理、统计查询、医生工作站和护士工作站等一系列常规功能&#xff0c;还能与公卫…

TailwindCss在vue3项目中的使用

1 安装 tailwindcss和postcss npm install -D tailwindcsslatest postcsslatest autoprefixerlatest2 初始化配置文件 npx tailwindcss init -p3 在tailwind.config.js添加对vue文件的识别&#xff0c;其他配置可以在配置文档中查看详细参数设置 /** type {import(tailwindc…

【御控物联】Java JSON结构转换(3):对象To对象——多层属性重组

文章目录 一、JSON结构转换是什么&#xff1f;二、案例之《JSON对象 To JSON对象》三、代码实现四、在线转换工具五、技术资料 一、JSON结构转换是什么&#xff1f; JSON结构转换指的是将一个JSON对象或JSON数组按照一定规则进行重组、筛选、映射或转换&#xff0c;生成新的JS…