繁体   English   中英

VBA:如何用字符串连接一列中的单元格范围并在另一列中生成它?

[英]VBA: How to concatenate range of cells in a column with strings and generate it in another column?

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

预期结果:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM