VBA实现:在“w附注”表精准查找特定资产,按余额条件复制粘贴到“附注校验”表
以下是一个使用 VBA 来解决此问题的示例代码: ```vb Sub FindAndCopyData() Dim wsWNote As Worksheet Dim wsCheck As Worksheet Dim findRange As Range Dim lastRow As Long Dim copyRange As Range Dim i As Long Dim startRow As Long Dim endRow As Long Dim found As Boolean Set wsWNote = ThisWorkbook.Sheets("w 附注") Set wsCheck = ThisWorkbook.Sheets("附注校验") lastRow = wsWNote.Cells(wsWNote.Rows.Count, 1).End(xlUp).Row For i = 1 To lastRow Set findRange = wsWNote.Cells(i, 1).EntireRow If InStr(1, findRange.Value, "分类为以公允价值计量且其变动计入当期损益的金融资产", vbTextCompare) > 0 Then found = True If InStr(1, wsWNote.Cells(i - 1, 1).Value, "期末余额", vbTextCompare) > 0 Then startRow = i + 2 endRow = FindFirstSumRow(startRow, wsWNote) - 1 Set copyRange = wsWNote.Range(wsWNote.Cells(startRow, 1), wsWNote.Cells(endRow, wsWNote.Columns.Count)) copyRange.Copy wsCheck.Rows(221).PasteSpecial xlPasteValues Set copyRange = wsWNote.Cells(FindFirstSumRow(startRow, wsWNote), 1) copyRange.Copy wsCheck.Rows(227).PasteSpecial xlPasteValues ElseIf InStr(1, wsWNote.Cells(i - 1, 1).Value, "期初余额", vbTextCompare) > 0 Then startRow = i + 2 endRow = FindFirstSumRow(startRow, wsWNote) - 1 Set copyRange = wsWNote.Range(wsWNote.Cells(startRow, 1), wsWNote.Cells(endRow, wsWNote.Columns.Count)) copyRange.Copy wsCheck.Rows(234).PasteSpecial xlPasteValues Set copyRange = wsWNote.Cells(FindFirstSumRow(startRow, wsWNote), 1) copyRange.Copy wsCheck.Rows(240).PasteSpecial xlPasteValues End If End If Next i If Not found Then MsgBox "未找到指定内容" End If End Sub Function FindFirstSumRow(startRow As Long, ws As Worksheet) As Long Dim i As Long For i = startRow To ws.Rows.Count If InStr(1, ws.Cells(i, 1).Value, "合计", vbTextCompare) > 0 Then FindFirstSumRow = i Exit Function End If Next i FindFirstSumRow = ws.Rows.Count + 1 End Function ``` 在上述代码中,首先定义了两个工作表对象 `wsWNote` 和 `wsCheck`,分别表示 `w 附注` 工作表和 `附注校验` 工作表。然后通过循环遍历 `w 附注` 工作表中的每一行,查找指定的文本。根据其上一行的内容判断是期初余额还是期末余额,确定复制和粘贴的起始行和结束行,并进行复制和粘贴操作。`FindFirstSumRow` 函数用于查找第一个包含 "合计" 的行。 在实际使用前,请根据您的工作簿结构和数据进行适当的调整和测试。 ######[AI写代码神器 | 830点数解答 | 2024-10-14 16:44:18]
- Java实现银行与账户类:含存、取、查交易记录功能的业务系统( | 363点数解答 | 2024-04-05 11:49:01)367
- Java实现含多操作的银行账户管理系统,功能演示清晰呈现!( | 363点数解答 | 2024-04-05 11:43:57)393
- Python 实现球类:精准计算半径、表面积与体积,附输入验证与异常处理!(阿里通义 | 261点数解答 | 2024-11-28 21:19:39)376
- VBA代码:巧用“数据源”关键词在“w附注”找区域并复制到“附注”指定位置(字节豆包 | 636点数解答 | 2024-10-11 17:16:08)285
- 数字化制图综合平台:助力企业转型,推动烟草物流图纸智能化设计 (字节豆包 | 490点数解答 | 2024-10-30 20:30:29)159
- 数字化制图综合平台:引领烟草物流及多领域设计革新 在企业数字化转型的时代浪潮中,数字化制图技术创新应用成为产业升级与提升竞争力的关键。企业对高效、精准、智能化设计解决方案需求迫切,构建集二维到三维正逆向工程快捷化、干涉检测可视化、设备明细数据提取自动化以及设备模块模型库于一体的综合平台意义重大。 此平台集成先进数字化制图工具与智能算法,可实现二维设计到三维建模的无缝转换,大大缩短设计周期。正逆向工程能快速切换,满足不同场景设计需求。内置干涉检测功能可实时监测设计潜在冲突,保障设计方案可行与安全。设备明细数据自动提取提高设计准确性与效率。设备模块模型库为设计师提供丰富资源,支持设计标准化与模块化,加速项目推进。 整体来看,该综合平台的应用极大促进了烟草物流行业及更广泛领域的技术创新与效率提升。在烟草物流方案图纸智能化设计中,它提升了图纸设计效率与质量,使设计工作更加高效、精准。对于企业而言,这一平台带来显著竞争优势,能帮助企业在数字化转型中脱颖而出,在激烈的市场竞争中占据有利地位,推动整个行业向更高效、更智能的方向发展。 (阿里通义 | 216点数解答 | 2024-10-30 20:30:51)189
- Python 求解小火龙正整数序列中等差数列整数对个数问题(字节豆包 | 227点数解答 | 2025-02-04 13:34:48)196
- C++ 求解小火龙正整数序列中等差数列整数对个数问题及代码示例(字节豆包 | 373点数解答 | 2025-02-04 13:35:22)195
- 50 分判断题大揭秘:变量、条件、循环与数组知识正误辨析(字节豆包 | 229点数解答 | 2025-12-21 19:15:16)80
- 怪象:a 为 3、b 为 5 时 “a == 3 && b == 5” 竟不成立! (DeepSeek | 81点数解答 | 2026-02-08 19:59:20)32
- 51 单片机:定时器 0 实现 8 个 LED 循环点亮,附代码及优化建议(字节豆包 | 1193点数解答 | 2024-12-27 15:10:29)346
- Linux开发:用find命令查找/usr目录下超1MB的文件(百度文心 | 153点数解答 | 2023-11-09 18:45:10)219