1. 程式人生 > >學習vba之按列合併將選定區域的單元格合併成一列

學習vba之按列合併將選定區域的單元格合併成一列

學習VBA-合併列

    首先選定一個區域,將這個區域的內容按列合併到該區域的後一列中。

    學習過程中,如有錯誤或改進之處,還請多多指教!

Sub 合併列()

    Dim hang As Integer '控制輸出的行
    Dim lie As Integer '控制輸出的列
    hang = Selection.Cells(1).Row
    lie = Selection.Columns.Count + Selection.Cells(1).Column '預設在選定區域後的第一列輸出
    Dim sHang As Integer '選定區域的左上第一個單元格的行下標
    Dim sLie As Integer '選定區域的左上第一個單元格的列下標
    For sLie = Selection.Cells(1).Column To Selection.Columns.Count + Selection.Cells(1).Column - 1 '列後迴圈 Selection.Columns.Count 為選定區域的列數
        For sHang = Selection.Cells(1).Row To Selection.Rows.Count + Selection.Cells(1).Row - 1 '行先迴圈
            If Cells(sHang, sLie) = "" Then '若當前單元格內容為空則跳出當前迴圈
                Exit For
            End If
            Cells(hang, lie) = Cells(sHang, sLie) '若不為空則在輸出單元格輸出資料
            hang = hang + 1 '輸出行標加1
        Next
    Next

End Sub

測試如下:

    選定單元格:

    

    執行結果:

    

    選定單元格:

    

    執行結果: