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