You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

请求编写筛选含AUDJPY等货币对的Excel宏或替代方案

保留含指定内容的行(删除无关行)

一、无需宏的简便操作(适合单次/少量操作)

  • 选中存放货币对的目标列(比如A列)
  • 点击「数据」选项卡 → 「筛选」,开启列筛选功能
  • 点击列标题的筛选箭头 → 「文本筛选」→ 「不包含」,输入要排除的内容(比如AUDJPY),点击确定
  • 此时显示的所有行都是需要删除的,选中这些行(点击行号可全选),右键选择「删除行」
  • 再次点击筛选箭头,选择「清除筛选」,即可保留所有含指定内容的行

二、VBA宏代码(适合重复批量操作)

固定指定内容版(直接修改代码切换货币对)

Sub KeepRowsWithSpecificText()
    Dim targetText As String
    Dim ws As Worksheet
    Dim lastRow As Long
    Dim i As Long
    
    ' 修改这里的内容切换要保留的货币对
    targetText = "AUDJPY"
    Set ws = ActiveSheet ' 操作当前激活的工作表
    
    ' 获取数据区域最后一行(假设数据在A列,可修改为对应列字母)
    lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row
    
    ' 从下往上遍历删除,避免因行号变动漏删
    For i = lastRow To 2 Step -1 ' 第1行是表头,从第2行开始处理
        ' 检查单元格是否包含目标文本,不包含则删除该行
        If InStr(1, ws.Cells(i, "A").Value, targetText, vbTextCompare) = 0 Then
            ws.Rows(i).Delete
        End If
    Next i
End Sub

调整说明:

  • 把targetText的值改成"EURCAD"即可切换保留的货币对
  • 若数据不在A列,将代码中的"A"替换为对应列的字母(如"B")
  • vbTextCompare表示不区分大小写,需严格区分则改为vbBinaryCompare

灵活输入版(运行时指定要保留的内容)

Sub KeepRowsWithInputText()
    Dim targetText As String
    Dim ws As Worksheet
    Dim lastRow As Long
    Dim i As Long
    
    ' 弹出输入框让用户指定要保留的货币对
    targetText = InputBox("请输入要保留的货币对(如AUDJPY、EURCAD):", "指定保留内容")
    If targetText = "" Then Exit Sub ' 用户取消输入则终止运行
    
    Set ws = ActiveSheet
    lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row
    
    For i = lastRow To 2 Step -1
        If InStr(1, ws.Cells(i, "A").Value, targetText, vbTextCompare) = 0 Then
            ws.Rows(i).Delete
        End If
    Next i
End Sub

使用步骤:

  1. 按Alt+F11打开VBA编辑器
  2. 右键当前工作簿 → 「插入」→ 「模块」,粘贴代码
  3. 保存工作簿为启用宏的格式(.xlsm)
  4. 按F5运行宏,或在Excel界面添加宏按钮快速调用

内容的提问来源于stack exchange,提问作者Apples

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 01:31:17