我是新手,我想问一个问题是否有人可以提供帮助。 我正在使用excel 2003和我想要的是我有一个列,在单元格A1我有名字,在单元格A2我有姓,在单元格A3我有名字,在单元格A4我有姓氏等。
我想要做的是将单元格A1与A2合并,然后将A3与A4合并,依此类推。 它大约有3000行。
是否有自动执行此操作的vba代码?
答案 0 :(得分:0)
您实际上并不需要VBA程序,只需使用Excel公式:
在您姓名旁边的列中填写一个以1开头的数字的顺序列表。所以这应该有1,2,3,4等等。你可以到A栏的底部,但中途会很好。要快速执行此操作,请在第一行(B1)中键入1,然后在第二行(B2)中键入公式:=B1+1
。然后将此公式一直复制到B列到A列的范围。这里的技巧是转到B2,选择编辑/复制,然后移动到A列和Ctrl-Down,移动到B列,然后使用Shift + Ctrl-Up,然后粘贴。
在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!错误;只是清除那些细胞。
现在您要将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
经过测试和工作