2009-12-20 75 views
0

即时通讯新的这一点,我想问一个问题,如果任何人都可以帮助。 即时通讯工作与Excel 2003和我想要的是,我有一列,在单元格A1我有名称和单元格A2我姓氏,在单元格A3我有名字和单​​元格A4我姓氏等等。我想合并单元格与vba

我想要做的是合并单元格A1与A2,然后A3与A4等。其约3000行。

是否有任何vba代码自动执行它?

回答

0

你并不真的需要一个VBA程序这一点,只是使用Excel的公式像这样:

  1. 在列旁边的名字填写数字从1开始的顺序列表所以这应该有1,2,3,4等等。你可以去你A列的底部,但中途会好起来的。要快速执行此操作,请在第一行(B1)中输入1,然后在第二行(B2)中输入公式:=B1+1。然后将此公式一路向下复制到A列的范围内。这里的诀窍是转到B2,选择编辑/复制,然后移动到A列并按下Ctrl键,移到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)

    凡<ENDROW>是A.最后一行

    复制这个公式至少下降了A列的一半。如果你超越了这个范围,你会得到#REF!错误;只是清除这些细胞。

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

+0

感谢名单凯文,但是当我复制并粘贴此代码,美写信给我擅长说是错误的。 excel did not accept it 有人认为我忘了告诉你是它可能删除空单元格 – savvas 2009-12-20 18:30:30

+0

你有空单元格吗?数据如何显示?请澄清。至于粘贴这个公式,你是否记得把''换成行号?我将这个权利从Excel中复制出来,尽管我有2007年,但INDEX函数也包含在2003年中。 – 2009-12-20 23:45:44

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 

测试和工程