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

Excel VBA需求:A列含'test'时将C列内容无空格堆叠到F列

修正后的VBA代码及说明

问题分析

原代码存在两个核心问题:

  • 每次匹配到"test"时都固定写入F2单元格,后续内容会直接覆盖之前的,没法实现堆叠效果
  • 完全没处理C列内容的去空格需求

修正后的代码

Sub FindValuePaste()
    Dim FndRng As Range
    Dim cll As Range
    Dim nextRow As Long
    
    ' 初始化F列写入起始行:如果F1是空行就从F1开始,否则从F2开始
    nextRow = IIf(Range("F1").Value = "", 1, 2)
    
    Set FndRng = Range("A3:A9")
    
    For Each cll In FndRng
        If cll.Value = "test" Then
            ' 去除C列内容的所有空格,写入F列下一行
            Cells(nextRow, "F").Value = Replace(cll.Offset(0, 2).Value, " ", "")
            ' 更新下一个写入的行号
            nextRow = nextRow + 1
        End If
    Next cll
End Sub

关键修改说明

  • 新增nextRow变量跟踪F列可写入的位置,每次写入后行号自动加1,保证内容依次堆叠不覆盖
  • 用Replace(单元格内容, " ", "")移除目标内容里的所有空格;如果只需要去掉首尾空格,换成Trim(cll.Offset(0, 2).Value)就行
  • 初始化行号时做了判断,适配F列有无表头的两种情况

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 17:55:59