即時通訊新的這一點,我想問一個問題,如果任何人都可以幫助。 即時通訊工作與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