将TextJoin与未知标头一起使用

时间:2018-03-29 19:19:24

标签: excel excel-vba text vba

我的电子表格发生了变化,列数未知。数据的第一行包含标题。使用我知道的标题值在工作表上,我想将数据合并到一个单元格中。

使用TextJoin,我想创建一个包含空格

的信息的列

我知道这可以通过公式完成,现在我尝试在VBA中编写代码。 (评论中的公式解决方案)

这是我到目前为止找到并开始向最后一栏添加信息的代码:

With ActiveSheet.UsedRange
  .Offset(, .Columns.Count).Resize(, 1).Value = [Formula]
  End With

' Finds the last column
Dim lastColumn As Long
  lastColumn = Cells(1, Columns.Count).End(xlToLeft).Column

' Add Header
Cells(1, lastColumn) = [New Column Header]

示例数据:

Sample Data

该程序如何处理样本电子表格?

使用以下标题查找列:住宅地址,街道名称和街道类型 找到第一个可用的空白列 在第二行中,输入以下公式:= TextJoin("",False,B2,C2,D2) 在表单下填写公式

由于我是VBA的新手,我试图将公式输入到单元格而不是使用编码。这是我需要你帮助的地方。

1 个答案:

答案 0 :(得分:1)

如果要与TextJoin连接的三列不在已知位置,则可以使用索引/匹配组合为每个值查找正确的列。索引位于当前行,匹配使用第1行查找列标签。

=TEXTJOIN(" ",FALSE,INDEX(A2:G2,MATCH("House Address",$A$1:$G$1,0)),INDEX(A2:G2,MATCH("Street Name",$A$1:$G$1,0)),INDEX(A2:G2,MATCH("Street Type",$A$1:$G$1,0)))

使用这种方法,您可以将该公式准确地发布到您找到的第一个空列的第2行,向下复制,并且TextJoin将创建地址。