Excel-将文本从一个单元格复制到另一个单元格,而不删除原始内容

Excel-将文本从一个单元格复制到另一个单元格,而不删除原始内容,excel,copy-paste,vba,Excel,Copy Paste,Vba,基本上我有以下场景: 2列,包含600行数据 我需要复制第2列中的数据,并将其放在第1列中相同行的内容末尾。这将导致第1列的原始内容加上第2列的附加内容 任何关于我如何做到这一点的信息都将不胜感激 提前谢谢 这是一个简单形式的VBA。只需创建一个宏,将这些行添加到其中。然后选择原始列(您称之为列1),并运行宏 a = ActiveCell.Value b = ActiveCell(1, 2).Value ActiveCell.Value = a + b 括号中的单元格引用是一个相对语句-1,

基本上我有以下场景:

2列,包含600行数据

我需要复制第2列中的数据,并将其放在第1列中相同行的内容末尾。这将导致第1列的原始内容加上第2列的附加内容

任何关于我如何做到这一点的信息都将不胜感激


提前谢谢

这是一个简单形式的VBA。只需创建一个宏,将这些行添加到其中。然后选择原始列(您称之为列1),并运行宏

a = ActiveCell.Value
b = ActiveCell(1, 2).Value

ActiveCell.Value = a + b
括号中的单元格引用是一个相对语句-1,2表示“同一行,右边一列”,因此,如果需要,可以对其进行更改。您可以通过如下方式使其循环:

Do
a = ActiveCell.Value
b = ActiveCell(1, 2).Value

ActiveCell.Value = a + b

ActiveCell.Offset(1, 0).Select

If ActiveCell.Value = "" Then
    Exit Do
End If
Loop

循环将一直进行,直到找到一个空白单元格,然后停止。所以,确保你有一个空白单元格,你想停止。您还可以在组合的行中添加额外的字符。。因此,在上面的示例中,它是
ActiveCell.Value=a+b
,但您可以将其设置为
ActiveCell.Value=a+“-”+b
或任何其他可能有用的内容。

这里是一个简单形式的VBA。只需创建一个宏,将这些行添加到其中。然后选择原始列(您称之为列1),并运行宏

a = ActiveCell.Value
b = ActiveCell(1, 2).Value

ActiveCell.Value = a + b
括号中的单元格引用是一个相对语句-1,2表示“同一行,右边一列”,因此,如果需要,可以对其进行更改。您可以通过如下方式使其循环:

Do
a = ActiveCell.Value
b = ActiveCell(1, 2).Value

ActiveCell.Value = a + b

ActiveCell.Offset(1, 0).Select

If ActiveCell.Value = "" Then
    Exit Do
End If
Loop

循环将一直进行,直到找到一个空白单元格,然后停止。所以,确保你有一个空白单元格,你想停止。您还可以在组合的行中添加额外的字符。。因此,在上面的示例中,它是
ActiveCell.Value=a+b
,但您可以将其设置为
ActiveCell.Value=a+“-”+b
或任何其他可能有用的内容。

这应该取第2列中的值,并将它们依次放置在第1列的底部

Sub test()
Dim rng1 As Range
Dim rng2 As Range
Dim cl As Range
Dim r As Long

Set rng1 = Range("A1", Range("A1048576").End(xlUp))
Set rng2 = Range("B1", Range("B1048576").End(xlUp))

r = rng1.Rows.Count + 1

For Each cl In rng2
    Cells(r, 1).Value = cl.Value
    r = r + 1
Next

End Sub

这应该取第2列中的值,并将它们依次放置在第1列的底部

Sub test()
Dim rng1 As Range
Dim rng2 As Range
Dim cl As Range
Dim r As Long

Set rng1 = Range("A1", Range("A1048576").End(xlUp))
Set rng2 = Range("B1", Range("B1048576").End(xlUp))

r = rng1.Rows.Count + 1

For Each cl In rng2
    Cells(r, 1).Value = cl.Value
    r = r + 1
Next

End Sub

保持简单。这是代码

Sub copyCol()
  Dim lastRow As Long
  lastRow = Range("A65000").End(xlUp).Row
  Range("B1:B" & lasrow).Copy Range("A" & lastRow).Offset(1, 0)
End Sub

保持简单。这是代码

Sub copyCol()
  Dim lastRow As Long
  lastRow = Range("A65000").End(xlUp).Row
  Range("B1:B" & lasrow).Copy Range("A" & lastRow).Offset(1, 0)
End Sub

由于这个问题收到了许多意见(10000+),我认为分享另一个简单得多的解决方案很重要:

在单元格C1中,使用以下公式:

=(A1 & B1)
这将把单元格A1和B1的内容复制到单元格C1中。将公式拖到所有其他行(在我的示例中是第600行)

然后复制列并使用“仅值”粘贴


然后,C列中的单元格将包含A列和B列的内容,并按行排列在单个单元格中。

由于此问题收到了大量视图(10000+),我认为分享另一个更简单的解决方案很重要:

在单元格C1中,使用以下公式:

=(A1 & B1)
这将把单元格A1和B1的内容复制到单元格C1中。将公式拖到所有其他行(在我的示例中是第600行)

然后复制列并使用“仅值”粘贴


然后,在C列中的单元格将包含A列和B列的内容,并以行对行的方式显示在单个单元格中。

不清楚“对于相同的行”是什么意思。此外,新的第1列是600行还是1200行?查看我在那里发布的解决方案。不清楚“for the same rows”是什么意思。另外,您的新列1是600行还是1200行?查看我在那里发布的解决方案。