VBA:如何连接列中单元格的范围与string,并在另一列中生成?

我只是不能解决这个特殊的问题,我必须将所有单元格与数据连接到一个string(例如“或”),然后在另一列中生成连接的结果。

预期结果:

Column A = ABCD Column B = 'ABCD', 

我的代码

 Option Explicit Sub Concatenator () Columns("B") = "'" & Range(Range("A1"), Range("A1").End(xlDown)) & "'," End Sub 

我会把代码放在一个FOR循环中

 Sub Concatenator() Dim lastLng As Long lastLng = ActiveSheet.UsedRange.Rows(ActiveSheet.UsedRange.Rows.Count).Row For x = 1 To lastLng Cells(x, 2).Value = "'" & Cells(x, 1).Value & "'," Next x End Sub 

或者,如果您不想使用循环,则可以使用下面的代码在B列中粘贴公式:

 Sub Concatenator() Dim lastLng As Long lastLng = ActiveSheet.UsedRange.Rows(ActiveSheet.UsedRange.Rows.Count).Row Range("B1:B" & lastLng).Formula = "=""'"" & A1 & "",'""" End Sub 

或者你可以使用这个

 Sub Concatenator() Range("A1", Cells(Rows.count, 1).End(xlUp)).SpecialCells(xlCellTypeConstants, xlTextValues).Offset(, 1).Formula = "=concatenate(""'"",RC[-1],""'"")" End Sub 

或这个:

 Sub Concatenator() With Range("A1", Cells(Rows.count, 1).End(xlUp)) .Offset(, 1).Value = Application.Transpose(Split(Replace("'" & Join(Application.Transpose(.Value), "'|''") & "'", "'''", "''"), "|")) End With End Sub