假設你的數據在Sheet1
,你想導致Sheet2
試試下面的代碼:
Sub RangetoColumn()
Dim lastRow As Long, lastColumn As Long
Dim CurrentSheet As Worksheet, TargetSheet As Worksheet
Dim i As Long, j As Long, Count As Long
Dim colHeader As String
Set CurrentSheet = ThisWorkbook.Worksheets("Sheet1") '-->sheet with data
Set TargetSheet = ThisWorkbook.Worksheets("Sheet2") '-->sheet to display result
lastColumn = CurrentSheet.Cells(1, Columns.Count).End(xlToLeft).Column
Count = 1
For i = 1 To lastColumn
lastRow = CurrentSheet.Cells(Rows.Count, i).End(xlUp).Row
If lastRow > 1 Then '-->check for data below header
colHeader = CurrentSheet.Cells(1, i).Value
For j = 1 To lastRow - 1
TargetSheet.Range("A" & Count).Value = colHeader
TargetSheet.Range("B" & Count).Value = CurrentSheet.Cells(j + 1, i).Value
Count = Count + 1
Next j
End If
Next i
End Sub