Verileri Excel'e almadan önce önişlemenizi öneririm.
Ancak VBA'da istediğinizi yapan bir prosedür hazırladım:
Makroyu yüklemek için
Excel’i Aç - & gt; Alt + F11 - & gt; Ekle - & gt; Modül - & gt; aşağıdaki kodu yapıştırın - & gt; Ctrl + S - & gt; ve açılan listeden 'Excel Makro Etkin Çalışma Kitabı (* .xlsm)' seçeneğini seçin
Sub ToManyColumns()
Dim firstCellRow As Long
firstCellRow = 1 'change this if you don't want to start at A1
Dim firstCellColumn As Long
firstCellColumn = 1 'change this if you don't want to start at A1
Application.ScreenUpdating = False
ActiveSheet.Cells(firstCellRow, firstCellColumn).Activate
Dim column As Long
column = firstCellColumn
Dim startIndex As Long
Dim endIndex As Long
Dim lastRow As Long
lastRow = firstCellRow
Do While True
'find the range to copy
startIndex = ActiveCell.row
Do While ActiveCell.Value <> ""
endIndex = ActiveCell.row
ActiveCell.Offset(1).Activate
Loop
lastRow = ActiveCell.row
Range(Cells(startIndex, firstCellColumn), Cells(endIndex, firstCellColumn)).Select
Selection.Copy
Cells(firstCellRow, column).Select
Selection.PasteSpecial Paste:=xlPasteValues
'get back to last rowIndex
Cells(lastRow, firstCellColumn).Activate
ActiveCell.Offset(1).Activate
If ActiveCell.Value = "" Then Exit Do
column = column + 1
Loop
'cleanUp -------------------------------------------
Dim deleteFrom As Long
Dim deleteTo As Long
deleteTo = ActiveCell.row
ActiveSheet.Cells(firstCellRow, firstCellColumn).Activate
Do While ActiveCell.Value <> ""
ActiveCell.Offset(1).Activate
Loop
deleteFrom = ActiveCell.row
Range(Cells(deleteFrom, firstCellColumn), Cells(deleteTo, firstCellColumn)).Select
Selection.ClearContents
ActiveSheet.Cells(firstCellRow, firstCellColumn).Activate
'cleanUp -------------------------------------------
Application.ScreenUpdating = True
End Sub
Makroyu çalıştırmak için:
- Olmak istediğiniz çalışma sayfasında olduğunuzdan emin olun! Ve çalışma sayfasına herhangi bir yeri tıklayın!
(Bu makro, Etkin Çalışma Sayfasında çalıştığı için)
- Alt + F11 - & gt; Kodun içinde herhangi bir yeri tıklayın - & gt; F5'e basın
Ayrıca çalışma sayfasında bir düğme oluşturabilir ve makroyu atayabilirsiniz - daha kullanıcı dostudur ve doğru çalışma sayfasında olup olmadığınızı kontrol etmeniz gerekmez.
notlar
Makronun A1 hücresinde başlamasını istemiyorsanız (örneğin: farklı sütunda başlar), 3. ve 5. satırlardaki sayıları değiştirin.
Bu amaçla, verileri önceden işlemek makroları kullanmaktan iyidir ...