我有一个看起来像这样的表:
SKU ID1 ID2 ID3 ID4 and so on...
111 1ab 2bc 3bc
222 1bb 3bb 4bb abb
333 2bb 3bb 4bc abc
444 1b2 2bb
我正在尝试将所有数据格式化如下,希望使用某种宏:
SKU ID
111 1ab
111 2bc
111 3bc
222 1bb
222 3bb
222 4bb
222 abb
333 2bb
333 3bb
333 4bc
333 abc
444 1b2
444 2bb
我曾尝试过立即转置所有内容,但它并没有正确。我认为需要更加编码的宏类型解决方案,但我不确定。
答案 0 :(得分:1)
您可以应用详细的here流程,但通过过滤Value
选择(Blanks)
并删除这些行,最后解决那些比其他数据更短的数据行(填充的单元格更少) 。
答案 1 :(得分:0)
这是Sheet1的图像:
以下是Sheet1&#39的代码:
Public Sub ProcessData()
Dim rData As Range
Dim OutRow As Long
Dim DataRow As Long
Dim DataCol As Long
Dim SKU As Long
With Worksheets("Sheet1")
Set rData = .Range("D1:J10") ' deliberately larger than the data, as a deminstration
OutRow = 1
For DataRow = 2 To rData.Rows.Count
SKU = rData(DataRow, 1)
If SKU = 0 Then
Exit For
End If
For DataCol = 2 To rData.Columns.Count
If Not IsEmpty(rData(DataRow, DataCol)) Then
OutRow = OutRow + 1
.Cells(OutRow, 1) = SKU
.Cells(OutRow, 2) = rData(DataRow, DataCol)
Else
Exit For
End If
Next
Next
End With
End Sub
这应该给你一个很好的起点。