
我對 VBA 的經驗不足,無法完成此任務。如何修改以下 VBA 才能執行以下操作:
將堆疊的列放入新工作表中。
處理空白(下面的程式碼目前執行此操作)
3.代碼在使用者目前選擇的範圍內執行。理想情況下,使用者可以選擇不連續的列。
Sub MoveAllDataToColumnA()
Dim i As Long, ws As Worksheet, rngCopy As Range, rngEnd As Range
Set ws = ActiveSheet
Do Until ws.Cells(1, 2).Value = ""
Set rngCopy = ws.Range("B2", ws.Cells(ws.Rows.Count, "B").End(xlUp))
Set rngEnd = ws.Cells(ws.Rows.Count, "A").End(xlUp).Offset(1, 0)
rngEnd.Resize(rngCopy.Rows.Count, 1).Value = rngCopy.Value
rngCopy.EntireColumn.Delete
Loop
End Sub
答案1
我會為此使用 Power Query 插件,儘管它無法處理要求 #3。從 Excel 2016 開始,Power Query 內建於資料功能區的「取得與轉換」部分。
我在 Power Query 中建立的步驟是:
選擇組織和長度列,然後選擇「刪除列」。
選擇「類別」列,然後選擇「取消透視列/取消透視其他列」。
您可以將結果傳送到新的 Excel 表格中。