gpt4 book ai didi

vba - 循环遍历行和列 Excel 宏 VBA

转载 作者:行者123 更新时间:2023-12-02 23:52:58 27 4
gpt4 key购买 nike

我的 Excel 工作表中有一个列包含以下格式的数据:aaa,bbbb,ccc,dd,eeee,... 每个字符串都用逗号“,”分隔

enter image description here

我创建了宏,它可以分割 A 列中的数据,并且每个字符串都单独插入到每行的新单元格中,如屏幕截图所示。

现在我想计算 B 列之后有多少个已使用的单元格,并根据该数字在单独的行中重复 B 列中的值,并将 C、D、E 列中的下一个值添加到每行。 .

最后,工作表 2 将如下所示:

enter image description here

我已经创建了一个解决方案:

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

但仅当 A 列只有一行时才有效。我已经尝试使用循环使用不同的逻辑,但它仍然没有给我正确的结果。我有数百行,手动执行会非常耗时。任何建议请。非常感谢。

最佳答案

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

关于vba - 循环遍历行和列 Excel 宏 VBA,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42837959/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com