2009-12-20 84 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 

測試和工程