我的电子表格发生了变化,列数未知。数据的第一行包含标题。使用我知道的标题值在工作表上,我想将数据合并到一个单元格中。
使用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]
示例数据:
该程序如何处理样本电子表格?
使用以下标题查找列:住宅地址,街道名称和街道类型 找到第一个可用的空白列 在第二行中,输入以下公式:= TextJoin("",False,B2,C2,D2) 在表单下填写公式
由于我是VBA的新手,我试图将公式输入到单元格而不是使用编码。这是我需要你帮助的地方。
答案 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将创建地址。