即时通讯新的这一点,我想问一个问题,如果任何人都可以帮助。 即时通讯工作与Excel 2003和我想要的是,我有一列,在单元格A1我有名称和单元格A2我姓氏,在单元格A3我有名字和单元格A4我姓氏等等。我想合并单元格与vba
我想要做的是合并单元格A1与A2,然后A3与A4等。其约3000行。
是否有任何vba代码自动执行它?
即时通讯新的这一点,我想问一个问题,如果任何人都可以帮助。 即时通讯工作与Excel 2003和我想要的是,我有一列,在单元格A1我有名称和单元格A2我姓氏,在单元格A3我有名字和单元格A4我姓氏等等。我想合并单元格与vba
我想要做的是合并单元格A1与A2,然后A3与A4等。其约3000行。
是否有任何vba代码自动执行它?
你并不真的需要一个VBA程序这一点,只是使用Excel的公式像这样:
在列旁边的名字填写数字从1开始的顺序列表所以这应该有1,2,3,4等等。你可以去你A列的底部,但中途会好起来的。要快速执行此操作,请在第一行(B1)中输入1,然后在第二行(B2)中输入公式:=B1+1
。然后将此公式一路向下复制到A列的范围内。这里的诀窍是转到B2,选择编辑/复制,然后移动到A列并按下Ctrl键,移到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)
凡<ENDROW>是A.最后一行
复制这个公式至少下降了A列的一半。如果你超越了这个范围,你会得到#REF!错误;只是清除这些细胞。
现在您要将C中的公式复制到另一列,请说D.选择它们,使用编辑/复制,然后移动到D1并右键单击并选择“粘贴特殊”。在对话框中点击“值”然后点击“确定”。现在你有一列每两行连在一起的值。
为此在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
测试和工程
感谢名单凯文,但是当我复制并粘贴此代码,美写信给我擅长说是错误的。 excel did not accept it 有人认为我忘了告诉你是它可能删除空单元格 – savvas 2009-12-20 18:30:30
你有空单元格吗?数据如何显示?请澄清。至于粘贴这个公式,你是否记得把''换成行号?我将这个权利从Excel中复制出来,尽管我有2007年,但INDEX函数也包含在2003年中。 –
2009-12-20 23:45:44