我想将单元格与vba合并

时间:2009-12-20 07:12:32

标签: excel

我是新手,我想问一个问题是否有人可以提供帮助。 我正在使用excel 2003和我想要的是我有一个列,在单元格A1我有名字,在单元格A2我有姓,在单元格A3我有名字,在单元格A4我有姓氏等。

我想要做的是将单元格A1与A2合并,然后将A3与A4合并,依此类推。 它大约有3000行。

是否有自动执行此操作的vba代码?

2 个答案:

答案 0 :(得分:0)

您实际上并不需要VBA程序,只需使用Excel公式:

  1. 在您姓名旁边的列中填写一个以1开头的数字的顺序列表。所以这应该有1,2,3,4等等。你可以到A栏的底部,但中途会很好。要快速执行此操作,请在第一行(B1)中键入1,然后在第二行(B2)中键入公式:=B1+1。然后将此公式一直复制到B列到A列的范围。这里的技巧是转到B2,选择编辑/复制,然后移动到A列和Ctrl-Down,移动到B列,然后使用Shift + Ctrl-Up,然后粘贴。

  2. 在C列中,您将放置一个公式,将两个单元格从A列合并在一起,如下所示:

    =INDEX($A$1:$A$<ENDROW>,(B1-1)*2+1,1)&" "&INDEX($A$1:$A$<ENDROW>,(B1-1)*2+2,1)

    其中&lt; ENDROW&gt;是A的最后一行。

    将此公式至少复制到A列的一半行。如果你超越这个,你将获得#REF!错误;只是清除那些细胞。

  3. 现在您要将C中的公式复制到另一列,例如D.选择它们,使用编辑/复制,然后移动到D1并右键单击并选择“粘贴特殊”。在对话框中单击“值”,然后单击“确定”。现在,您有一个列,其中每两行的值连接在一起。

答案 1 :(得分:0)

在vba中执行此操作:

Sub nameMerger()

Range("A1").Select

While ActiveCell.Value <> vbNullString

    ActiveCell.Value = ActiveCell.Value & " " & ActiveCell.Offset(0, 1).Value
    ActiveCell.Offset(0, 1).EntireColumn.Delete
    ActiveCell.Offset(0, 1).Select

Wend

End Sub

经过测试和工作