Excel中区域单元格含特定字符时如何拼接第二行对应列值
UDF修改操作指南
原函数取表头的逻辑绑定了第1行,你只需要把所有取标题文本的行号参数从1改成2即可,不需要改动其他判定逻辑。
可直接复用的适配版代码
Function GenStarMatchList(inputRng As Range) As String Dim outputStr As String Dim colIdx As Integer ' 遍历选中行的所有列 For colIdx = 1 To inputRng.Columns.Count ' 判定当前单元格是否包含"*" If InStr(1, inputRng.Cells(1, colIdx).Value, "*") > 0 Then ' 核心修改:原代码此处行号为1,改为2即可匹配当前第2行的表头 outputStr = outputStr & Cells(2, inputRng.Cells(1, colIdx).Column).Value & "; " End If Next colIdx ' 移除拼接末尾多余的分号和空格 If Len(outputStr) > 0 Then outputStr = Left(outputStr, Len(outputStr) - 2) End If GenStarMatchList = outputStr End Function
使用步骤
- 按
Alt+F11快捷键打开VBA编辑器,插入新模块后把上述代码粘贴保存 - 回到工作表界面,在D3单元格输入公式
=GenStarMatchList(A3:C3) - 选中D3单元格下拉填充到对应行,即可自动生成匹配结果,和示例效果完全一致:
D3单元格返回:Text1; Text3
D4单元格返回:Text2; Text3
内容的提问来源于stack exchange,提问作者Irene
相关产品推荐
相关产品推荐

