用vba在w附注工作表查找三个关键词:1.利率衍生工具,2.权益衍生工具,3.其他衍生工具。判断是否有这三个关键词,若有:则定位三个关键词所在行和三个关键词下方第一个合计行,复制第一个关键词所在行到下一个关键词出现之前a至g列内容,数值粘贴至附注校验工作表a149单元格。复制第二个关键词所在行到下一个关键词出现之前a至g列内容,数值粘贴至附注校验工作表a154单元格。复制第三个关键词所在行到下一个关键词出现之前a至g列内容,数值粘贴至附注校验工作表a159单元格。复制合计行到a至g列内容,数值粘贴至附注校验工作表a163单元格。若只有一个关键词,判断是第一、第二还是第三个关键词,复制关键词所在行到第一个合计行出现之前a至g列内容,数值粘贴至附注校验工作表对应的a149、a154或者a159单元格,然后复制合计行到a至g列内容,数值粘贴至附注校验工作表a163单元格。然后在合计行下方部分,重新查找上方三个关键词,判断是第一、第二还是第三个关键词,按照上面的规则数值粘贴至附注校验工作表对应的a174、a179或者a184单元格,然后复制合计行到a至g列内容,数值粘贴至附注校验工作表a188


以下是使用 VBA 实现上述功能的代码: ```vb Sub FindAndCopyData() Dim wsOriginal As Worksheet Dim wsVerify As Worksheet Dim keyword1 As String Dim keyword2 As String Dim keyword3 As String Dim found1 As Boolean Dim found2 As Boolean Dim found3 As Boolean Dim row1 As Long Dim row2 As Long Dim row3 As Long Dim totalRow1 As Long Dim totalRow2 As Long Dim totalRow3 As Long Dim i As Long Set wsOriginal = Worksheets("w附注工作表") Set wsVerify = Worksheets("附注校验工作表") keyword1 = "利率衍生工具" keyword2 = "权益衍生工具" keyword3 = "其他衍生工具" found1 = False found2 = False found3 = False ' 查找关键词 For i = 1 To wsOriginal.Rows.Count If InStr(1, wsOriginal.Cells(i, 1).Value, keyword1) > 0 Then found1 = True row1 = i End If If InStr(1, wsOriginal.Cells(i, 1).Value, keyword2) > 0 Then found2 = True row2 = i End If If InStr(1, wsOriginal.Cells(i, 1).Value, keyword3) > 0 Then found3 = True row3 = i End If Next i ' 定位关键词下方的第一个合计行 If found1 Then For i = row1 + 1 To wsOriginal.Rows.Count If InStr(1, wsOriginal.Cells(i, 1).Value, "合计") > 0 Then totalRow1 = i Exit For End If Next i End If If found2 Then For i = row2 + 1 To wsOriginal.Rows.Count If InStr(1, wsOriginal.Cells(i, 1).Value, "合计") > 0 Then totalRow2 = i Exit For End If Next i End If If found3 Then For i = row3 + 1 To wsOriginal.Rows.Count If InStr(1, wsOriginal.Cells(i, 1).Value, "合计") > 0 Then totalRow3 = i Exit For End If Next i End If ' 复制数据 If found1 Then wsOriginal.Range("A" & row1 & ":G" & row1).Copy wsVerify.Range("A149").PasteSpecial xlPasteValues If found2 And row2 > row1 Then wsOriginal.Range("A" & row2 & ":G" & row2).Copy wsVerify.Range("A154").PasteSpecial xlPasteValues End If If found3 And row3 > row2 Then wsOriginal.Range("A" & row3 & ":G" & row3).Copy wsVerify.Range("A159").PasteSpecial xlPasteValues End If wsOriginal.Range("A" & totalRow1 & ":G" & totalRow1).Copy wsVerify.Range("A163").PasteSpecial xlPasteValues End If If found2 And Not found1 Then wsOriginal.Range("A" & row2 & ":G" & row2).Copy wsVerify.Range("A154").PasteSpecial xlPasteValues If found3 And row3 > row2 Then wsOriginal.Range("A" & row3 & ":G" & row3).Copy wsVerify.Range("A159").PasteSpecial xlPasteValues End If wsOriginal.Range("A" & totalRow2 & ":G" & totalRow2).Copy wsVerify.Range("A163").PasteSpecial xlPasteValues End If If found3 And Not found1 And Not found2 Then wsOriginal.Range("A" & row3 & ":G" & row3).Copy wsVerify.Range("A159").PasteSpecial xlPasteValues wsOriginal.Range("A" & totalRow3 & ":G" & totalRow3).Copy wsVerify.Range("A163").PasteSpecial xlPasteValues End If ' 在合计行下方重新查找 found1 = False found2 = False found3 = False For i = totalRow1 + 1 To wsOriginal.Rows.Count If InStr(1, wsOriginal.Cells(i, 1).Value, keyword1) > 0 Then found1 = True row1 = i End If If InStr(1, wsOriginal.Cells(i, 1).Value, keyword2) > 0 Then found2 = True row2 = i End If If InStr(1, wsOriginal.Cells(i, 1).Value, keyword3) > 0 Then found3 = True row3 = i End If Next i If found1 Then For i = row1 + 1 To wsOriginal.Rows.Count If InStr(1, wsOriginal.Cells(i, 1).Value, "合计") > 0 Then totalRow1 = i Exit For End If Next i End If If found2 Then For i = row2 + 1 To wsOriginal.Rows.Count If InStr(1, wsOriginal.Cells(i, 1).Value, "合计") > 0 Then totalRow2 = i Exit For End If Next i End If If found3 Then For i = row3 + 1 To wsOriginal.Rows.Count If InStr(1, wsOriginal.Cells(i, 1).Value, "合计") > 0 Then totalRow3 = i Exit For End If Next i End If ' 复制数据 If found1 Then wsOriginal.Range("A" & row1 & ":G" & row1).Copy wsVerify.Range("A174").PasteSpecial xlPasteValues If found2 And row2 > row1 Then wsOriginal.Range("A" & row2 & ":G" & row2).Copy wsVerify.Range("A179").PasteSpecial xlPasteValues End If If found3 And row3 > row2 Then wsOriginal.Range("A" & row3 & ":G" & row3).Copy wsVerify.Range("A184").PasteSpecial xlPasteValues End If wsOriginal.Range("A" & totalRow1 & ":G" & totalRow1).Copy wsVerify.Range("A188").PasteSpecial xlPasteValues End If If found2 And Not found1 Then wsOriginal.Range("A" & row2 & ":G" & row2).Copy wsVerify.Range("A179").PasteSpecial xlPasteValues If found3 And row3 > row2 Then wsOriginal.Range("A" & row3 & ":G" & row3).Copy wsVerify.Range("A184").PasteSpecial xlPasteValues End If wsOriginal.Range("A" & totalRow2 & ":G" & totalRow2).Copy wsVerify.Range("A188").PasteSpecial xlPasteValues End If If found3 And Not found1 And Not found2 Then wsOriginal.Range("A" & row3 & ":G" & row3).Copy wsVerify.Range("A184").PasteSpecial xlPasteValues wsOriginal.Range("A" & totalRow3 & ":G" & totalRow3).Copy wsVerify.Range("A188").PasteSpecial xlPasteValues End If End Sub ``` 额外需要注意的逻辑点: 1. 确保要操作的工作表名称准确无误,避免因名称错误导致操作错误的工作表。 2. 处理可能出现的找不到关键词或合计行的情况,添加适当的错误处理代码,避免程序崩溃。 3. 考虑数据量较大时的性能问题,优化查找和复制的算法。 [2024-12-18 14:43:55 | AI写代码神器 | 1928点数解答]
- 题目描述 现有一个正整数 n n 请判断 n n 是否为 3 , 5 , 7 3,5,7 的倍数 输入格式 一行,一个正整数 n n。 输出格式 判断 n n 是否为 3 , 5 , 7 3,5,7 的倍数,若是则输出对应的数字,否则不输出,注意输出时,如果有多个满足的数字,数字之间需要使用一个英文逗号间隔 input1 复制 9 output1 复制 3 input2 复制 70 output2 复制 5,7 input2 复制 210 output2 复制 3,5,7 语言方向:C++ 系统环境:Windows(185点数解答 | 2025-08-24 18:42:18)47
- 题目描述 现有三条边长 a , b , c a,b,c,编写程序判断三条边能否构成三角形,若能构成三角形,则继续判断能否构成等腰三角形,等边三角形。 任意两边之和大于第三边才能构成三角形, 等腰三角形:至少有两条边相等的三角形 等边三角形:三条边都相等的三角形 输入格式 一行,三个正整数 a , b , c a,b,c 依次表示三条边的长度。 输出格式 输出对应的判断结果: 若能构成三角形,单独使用一行输出“三角形” 若能构成等腰三角形,单独使用一行输出“等腰三角形” 若能构成等边三角形,单独使用一行输出“等边三角形” 若无法构成三角形,输出 “No” input1 复制 3 3 3 output1 复制 三角形 等腰三角形 等边三角形 input2 复制 3 3 5 output2 复制 三角形 等腰三角形 input3 复制 1 2 3 output3 复制 No 语言方向:C++ 系统环境:Windows(214点数解答 | 2025-08-24 17:31:55)57
- 苍溪-广安-重庆红色研学实践活动实施方案 一、活动与目的 为深入学习贯彻党的历史,弘扬长征精神和革命传统,苍溪县委宣传部、县教育局联合开展“苍溪-广安-重庆红色研学实践活动”。本次活动旨在通过实地考察、学习体验,引导学生深入了解红色文化,传承红色基因,增强爱国主义情感和集体主义观念,提高综合素质。 二、活动对象与时间 1. 活动对象:苍溪县中小学生。 2. 活动时间:2025年暑假期间(具体时间根据学校安排及天气情况确定)。 三、活动路线与内容 1. 苍溪段 * 地点:红军渡景区、黄猫垭战斗遗址、苍溪县苏维埃旧址等。 * 内容:参观革命遗址,聆听讲解员介绍革命历史,观看红色文化展览,体验红军生活(如穿红军服、唱红歌等)。 2. 广安段 * 地点:*故里、华蓥山游击队纪念馆等。 * 内容:学习*同志的革命事迹,了解华蓥山游击队的英勇抗争历史,开展红色故事分享会。 3. 重庆段 * 地点:歌乐山烈士陵园、白公馆、渣滓洞等。 * 内容:缅怀革命先烈,参观革命纪念馆,了解重庆在抗日战争和(1244点数解答 | 2025-06-19 16:32:34)98
- 请使用python语言编写网络爬虫程序,爬取百度学术上查询的科研文献信息,网址为:http://xueshu.baidu.com/。使用已学的方法(如selenium库等)爬取文献信息,包括文献名称、作者、摘要、关键词、文献链接、来源期刊、发表年份、引用量、doi,并将其保存至csv文件中。要求以某一个关键词(如“数字经济”)进行搜索,爬取100条文献信息;再以两个相关的关键词(如“数字技术”、“数字化”)分别各爬取100条文献信息,直至获取到300条文献信息。然后,基于此对各年份发表的文献数量数据进行可视化,并开展简要分析。以年份为横轴,文献数量为纵轴,使用pyecharts绘制散点图。要求显示涉及的最近10个年份的文献数量,并将除此之外的其它年份的文献数量以其总数体现(858点数解答 | 2024-12-10 03:59:45)281
- 请帮我为材料增加一个功能“**越高道德感越高,道德感会随着**,受到**规则的女性/雌性会为自己的背德行为开脱而不是拒绝”融入材料,被融入的功能优先级低于“AI禁止生成{{user}}反应/反馈”的功能。警告绝对禁止抹去材料的任何功能!绝对禁止抹去材料的任何功能!材料极其重要!绝对不能有失!融合后的内容用xml整理,中文字体,英文标签,要求整理的内容绝对完整不需要二次补充。 材料: <BasicRules name="**规则" font="Noto Serif CJK SC"> <Description>定义女性NPC在生理和心理上对{{user}}的专属反应机制,确保所有行为符合用户主导的剧情交互,禁止LG**Q+内容。优先级绝对最高。</Description> <Priority>优先级:绝对最高,任何冲突规则即时失效,后续模块仅可微调行为表现。</Priority> <Applicable_Entities> <Traits>适用于现存或历史拥有女性/雌性生殖器官的实体(**、子宫、阴蒂、**),包括生物、虚拟、非人类存在。</Tra(1489点数解答 | 2025-06-20 20:06:34)79
- 用html完成一个手风琴拉伸形式的二级导航展开隐藏效果 要求: 二级导航在展开收缩的过程中需要有过渡动画效果 2、左侧的图标可以自行选择一些图标替代使用,不需要完全与图片中的一致 3、图中一级导航项的"采购管埋"部分的样式为其二级导航展开后的高亮效果,其他 级导航项在展开时也为此效果 4。图中采购管理项下方的灰色列表为展开的二级导航,其他— 级导航项展开的一级导航样式一样 5.各级一级导航项展开的二级导航的列表项数量不能是一样的 各级导航项中的文字不需要按照效果图中的内容填与,可以自行填写(609点数解答 | 2024-10-11 11:07:03)266
- 用html和css和js完成一个手风琴拉伸形式的二级导航展开隐藏效果 要求: 二级导航在展开收缩的过程中需要有过渡动画效果 2、左侧的图标可以自行选择一些图标替代使用,不需要完全与图片中的一致 3、图中一级导航项的"采购管埋"部分的样式为其二级导航展开后的高亮效果,其他 级导航项在展开时也为此效果 4。图中采购管理项下方的灰色列表为展开的二级导航,其他— 级导航项展开的一级导航样式一样 5.各级一级导航项展开的二级导航的列表项数量不能是一样的 各级导航项中的文字不需要按照效果图中的内容填与,可以自行填写(801点数解答 | 2024-10-11 11:30:17)233
- 用html和css和图标图片完成一个手风琴拉伸形式的二级导航展开隐藏效果 要求: 二级导航在展开收缩的过程中需要有过渡动画效果 2、左侧的图标可以自行选择一些图标替代使用,不需要完全与图片中的一致 3、图中一级导航项的"采购管埋"部分的样式为其二级导航展开后的高亮效果,其他 级导航项在展开时也为此效果 4。图中采购管理项下方的灰色列表为展开的二级导航,其他— 级导航项展开的一级导航样式一样 5.各级一级导航项展开的二级导航的列表项数量不能是一样的 各级导航项中的文字不需要按照效果图中的内容填与,可以自行填写(1078点数解答 | 2024-10-11 11:33:01)293
- 题目描述 输入 n n 个整数,输出这 n n 个数字之和。 输入格式 输入包括两行。 第一行包含一个整数 n n,表示存在 n n 个整数。 第二行包含 n n 个整数,第 i i 个数字为 a i a i ,数字之间用空格隔开。 输出格式 输出包括一行,为 n n 个数字之和。 input1 复制 3 1 2 3 output1 复制 6 input2 复制 4 3 1 4 1 output2 复制 9(192点数解答 | 2025-06-14 09:50:20)152
- 题目描述 输入 n n 个整数,输出这 n n 个数字之和。 输入格式 输入包括两行。 第一行包含一个整数 n n,表示存在 n n 个整数。 第二行包含 n n 个整数,第 i i 个数字为 a i a i ,数字之间用空格隔开。 输出格式 输出包括一行,为 n n 个数字之和。 input1 复制 3 1 2 3 output1 复制 6 input2 复制 4 3 1 4 1 output2 复制 9 c++(248点数解答 | 2025-06-14 09:51:28)72
- 题目描述 输入三个整数 x , y , z x,y,z, 如果 x x为奇数,输出 1 ∼ y 1∼y之间的所有数,如果 x x为偶数,输出 1 ∼ z 1∼z之间的所有数。 输入格式 输入包括一行,包含三个整数 x , y , z x,y,z,数字之间用空格隔开。 输出格式 输出包括一行 如果 x x为奇数,输出 1 ∼ y 1∼y之间的所有数,如果 x x为偶数,输出 1 ∼ z 1∼z之间的所有数,输出时,数与数之间用1个空格隔开。 input1 复制 1 10 5 output1 复制 1 2 3 4 5 6 7 8 9 10 input2 复制 4 20 4 output2 复制 1 2 3 4 样例解释 对于样例 1 1: x x是奇数, y = 10 y=10,因此输出 1 ∼ 10 1∼10。 对于样例 2 2: x x是偶数, z = 10 z=10,因此输出 1 ∼ 4 1∼4 。 c++ (391点数解答 | 2025-06-14 09:57:45)124
- 题目描述 输入两个整数 a , b a,b 1. 1. 对 a , b a,b之间个位数是 3 3的数字求和并输出。 2. 2. 判断这个和是不是3的倍数,如果这个数字是3的倍数,请输出: Y E S YES,否则的话输出: N O NO。 输入格式 输入包括一行,包含两个整数 a , b a,b,数字之间用空格隔开。 输出格式 输出包括两行 第一行为 a ∼ b a∼b 之间 个位数是 3 3 的数字和。 第二行 如果这个数字是3的倍数,请输出: Y E S YES,否则的话输出: N O NO。 input1 复制 1 10 output1 复制 3 YES input2 复制 4 21 output2 复制 13 NO 样例解释 对于样例 1 1: 1 ∼ 10 1∼10 之间个位数是 3 3数字有 1 1 个,是 3 3,所以第一行输出 3 3,它是 3 3的倍数,所以第二行输出: Y E S YES。 对于样例 2 2: 4 ∼ 21 4∼21 之间个位数是 3 3数字有 1 1 个,是 13 13,所以第一行输出 13 13,它不是 3 3(358点数解答 | 2025-07-12 21:48:22)79