我在 Excel 工作表中有一列包含以下格式的数据:aaa,bbbb,ccc,dd,eeee,...每个字符串由逗号“,”分隔
我创建了宏,它拆分 A 列中的数据,每个字符串分别插入到每一行的新单元格中,如屏幕截图所示。
现在我想计算在 B 列之后使用了多少个单元格,并根据该数字在单独的行中重复 B 列中的值,并将 C、D、E 列中的下一个值添加到每一行中。
最后,工作表 2 将如下所示:
我创建了一个解决方案:
For i = 1 To 3
ActiveWorkbook.Sheets(2).Cells(i, 1).Value = ActiveWorkbook.Sheets(1).Range("B1").Value
ActiveWorkbook.Sheets(2).Cells(i, 2).Value = ActiveWorkbook.Sheets(1).Cells(1, i + 2).Value
Next i
Run Code Online (Sandbox Code Playgroud)
但它仅在 A 列只有一行时才有效。我尝试过使用 Loops 使用不同的逻辑,但仍然没有得到正确的结果。我有数百行,手动完成会很耗时。请提出任何建议。非常感谢。
Sub ExtractParts()
Dim wsSrc As Worksheet: Set wsSrc = Worksheets("Sheet1")
Dim wsDest As Worksheet: Set wsDest = Worksheets("Sheet2")
Dim LastRow As Long: LastRow = wsSrc.UsedRange.Find("*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
Dim LastCol As Long: LastCol = wsSrc.UsedRange.Find("*", SearchOrder:=xlByColumns, SearchDirection:=xlPrevious).Column
Dim i As Long, j As Long, RowCounter As Long: RowCounter = 2
With wsDest
.Cells(1, 1) = "Order Number"
.Cells(1, 2) = "Part Number"
For i = 1 To LastRow
For j = 3 To LastCol
If wsSrc.Cells(i, j) <> "" Then
.Cells(RowCounter, 1) = wsSrc.Cells(i, 2)
.Cells(RowCounter, 2) = wsSrc.Cells(i, j)
RowCounter = RowCounter + 1
End If
Next j
Next i
End With
End Sub
Run Code Online (Sandbox Code Playgroud)