将单元格值与标题合并并忽略空白

将单元格值与标题合并并忽略空白

我想将固定行值与不同的列值组合起来,但跳过空白单元格。我有代码,但不起作用。请提出建议

在此处输入图片描述

Public Function SuperJoin(r1 As Range, r2 As Range, IgnoreBlanks As Boolean) As String
Dim i As Long, j As Long
Dim s As String

j = r2.Cells.Count
For i = 1 To j
  If IgnoreBlanks = True Then
    If r2.Cells(i) = True Then
        If r2.Cells(i).Value <> "" Then s = s & "-" & r2.Cells(i)
    End If
  Else
    If r2.Cells(i) = True Then
        s = s & "-" & r2.Cells(i)
    End If
  End If
Next

i = r1.Count

For j = 1 To i
    SuperJoin = SuperJoin & "----" & r1(1, j) & r2(1, j)
Next j

SuperJoin = Mid(SuperJoin, 5)

End Function

答案1

如果您想不使用 VBA 来完成此操作,那么这个丑陋的公式就可以完成这项工作。

=IF(ISBLANK(B5),"",B$1&"-"&B5&", ") &IF(ISBLANK(C5),"",C$1&"-"&C5) &IF(ISBLANK(D5),"", (IF(ISBLANK(C5),D$1&"-"&D5,", "&D$1&"-"&D5)))

它位于下面屏幕截图中的单元格 B12 中。不幸的是,公式始终假设至少有两列包含数据,否则它会添加不必要的数据,如 E 中的结果所示。(单元格 B13)

在此处输入图片描述

相关内容