通过vba在Excel中轻松组合两个范围和一个字符串

时间:2015-03-10 20:24:53

标签: excel-vba vba excel

有没有一种简单的方法可以将两个范围的值合并为一个?我有一个名字列和另一个姓氏,我希望将它们添加到一起,以便在另一个工作簿中使用一系列全名。我使用Union来组合它们,但我还想在两个名称之间添加一个空格。

   Set UnionRange = Union(Range1, " ", Range2)

有没有办法使用Union或类似的东西来添加空格而不必遍历每一行或首先将结果写入工作表?

1 个答案:

答案 0 :(得分:0)

为了连接两个或更多字符串,您只需使用&+运算符即可。在您的情况下,假设具有姓氏的范围是具有名字的一个单元格右侧的一个单元格,并且连接的字符串将是右侧的一个单元格,您可以在VBA中执行类似的操作:

Sub concatenate_names
  Dim range_of_names As Range, c As Range, s As String

  Set range_of_names = Worksheets("Whatever").Range("Whatever")

  For Each c In range_of_names
    s = CStr(c) & " " & CStr(c.Offset(0, 1))
    c.Offset(0, 2) = s
  Next
End Sub

当然,严格来说,您不需要在将字符串放入单元格之前将其存储在变量中,但我发现它使代码更易于阅读。

您也可以通过工作表函数CONCATENATE执行此操作,将类似的内容放入组合名称应为的单元格中:

=CONCATENATE(A1," ",B1)