如何使用VBA将3列合并到1个新列

如何使用VBA将3列合并到1个新列,vba,excel,Vba,Excel,我正在尝试合并3列,它们都有一个文本字符串 假设A列是这样的: 你好,你是哪里人 你好,你是哪里人 你好,你是哪里人 B栏: 彼得 妈妈 爸爸 C栏: DK 太平绅士 国标 我希望我在D列中的输出为: 嗨,彼得,你是丹麦人吗? 嗨,妈妈,你是JP公司的吗? 嗨,爸爸,你是英国人吗? 我自己的so费用代码是: Sub MergeColumns() Dim LR As Long Dim cell As Range, RNG As Range LR = Range(&quo

我正在尝试合并3列,它们都有一个文本字符串

假设A列是这样的:

你好,你是哪里人

你好,你是哪里人

你好,你是哪里人

B栏:

彼得

妈妈

爸爸

C栏:

DK 太平绅士 国标 我希望我在D列中的输出为:

嗨,彼得,你是丹麦人吗? 嗨,妈妈,你是JP公司的吗? 嗨,爸爸,你是英国人吗? 我自己的so费用代码是:

Sub MergeColumns()

    Dim LR As Long
    Dim cell As Range, RNG As Range

    LR = Range("A" & Rows.Count).End(xlUp).Row
    Set RNG = Range("A1:A" & LR)

    For Each cell In RNG
           cell.Offset(0, 4) = Left(cell.Value, 2) & Range(B1:B) &   Mid(cell.Value, 4, 13) & Range(C1:C) & Right(cell.Value, 1)
    Next cell

    Range("C:C").Columns.AutoFit

End Sub
我有点认为错误在我的范围B1:B和范围C1:C,但我不知道如何插入我尝试使用Concatenate的列,但这只是把它搞砸了。

我会在屏幕上使用一对

我会在地板上用一双鞋


前面的答案是一个很好的解决方案,您也可以这样做

Sub MergeColumns()

    Dim LR As Long
    Dim cell As Range, RNG As Range

    LR = Range("A" & Rows.Count).End(xlUp).Row
    Set RNG = Range("A1:A" & LR)

    For Each cell In RNG
        cell.Offset(0, 3) = Left(cell.Value, 2) & " " _
                    & cell.Offset(0, 1) & " " _
                    & Mid(cell.Value, 4, 13) & " " _
                    & cell.Offset(0, 2) & Right(cell.Value, 1)
    Next cell

    Range("C:C").Columns.AutoFit

End Sub

前面的答案是一个很好的解决方案,您也可以这样做

Sub MergeColumns()

    Dim LR As Long
    Dim cell As Range, RNG As Range

    LR = Range("A" & Rows.Count).End(xlUp).Row
    Set RNG = Range("A1:A" & LR)

    For Each cell In RNG
        cell.Offset(0, 3) = Left(cell.Value, 2) & " " _
                    & cell.Offset(0, 1) & " " _
                    & Mid(cell.Value, 4, 13) & " " _
                    & cell.Offset(0, 2) & Right(cell.Value, 1)
    Next cell

    Range("C:C").Columns.AutoFit

End Sub