1

基本上我有以下场景:

2 列,600 行数据。

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

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

提前致谢!

4

4 回答 4

1

这是一个简单形式的 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或其他任何可能有帮助的东西。

于 2013-04-08T18:38:00.697 回答
0

这应该从第 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
于 2013-04-08T18:40:30.987 回答
0

保持简单。这是代码。

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
于 2013-04-08T18:46:02.070 回答
0

由于这个问题收到了很多观点(10,000+),我认为分享另一个更简单的解决方案也很重要:

在单元格 C1 中使用公式:

=(A1 & B1)

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

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

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

于 2016-07-01T13:57:58.623 回答