使用VBA

时间:2017-01-08 15:18:32

标签: vba function concatenation

我尝试在此论坛中找到的各种代码,以便在每次运行程序时连接不同的范围。

我需要在Range(" B1")中设置特定范围的连接值(例如A5到col A中的值的最后一行)。连接值也应该用","分隔。 (这是逗号和空格)。

不重复的原因: 我需要在Range中显示值(" B1")但是我必须输入" Join"单独使用vba的函数,不需要我在B1中键入UDF。

A中的范围有不同的最后一行没有。取决于需要连接的记录。现有问题定义完全没有。我需要一个灵活的代码。

感谢。

2 个答案:

答案 0 :(得分:0)

与&联合(+也会起作用,但有时会引起问题)。

<colorsUsed/>

答案 1 :(得分:0)

在OP的澄清后编辑

你可以使用:

Range("B1").value = Join(Application.Transpose(Rng1), ", ")

您可能还想采用以下重构代码:

Sub New_Segment()
    Dim Rng1 As Range, Rng2 As Range, c As Range

    With ActiveWorkbook.Worksheets("Mapping")
        Set Rng2 = .Range("A1:D" & .UsedRange.Rows(.UsedRange.Rows.Count).Row)
    End With

    With ActiveWorkbook.Worksheets("Segment Generator")
        Set Rng1 = .Range("A5", .Cells(.Rows.Count, "A").End(xlUp))
        For Each c In Rng1
            c.Offset(, 1) = Application.WorksheetFunction.VLookup(c, Rng2, 4, False)
        Next
        .Range("B1").value = Join(Application.Transpose(Rng1), ", ")
    End With
End Sub