今天我完成了by VBA课程的循环部分,并做了一些练习,但我遇到了一个我似乎无法解决的问题。
我想将数据从工作表1转到工作表2。
图1
a 1 2 3
b 1 2 3 4 5 6
c 1 2 3 4
我正在尝试编写一个宏来将数据转置到工作表2中,如下所示:
a 1
a 2
a 3
b 1
b 2
b 3
b 4
b 5
b 6
c 1
c 2
c 3
c 4
我试图编写一些VBA代码,但我不知道如何解决这个特定的问题。我尝试使用Do Until循环,但我遇到的问题是如何将表1,列1中的字母与表2中相应的数字粘贴在一起。
我的一个朋友做了一些代码给我分析,但它让我更困惑。它适用于这个数据集,但对于更大的数据集(字母向上到‘z’的数据集),它无法做到这一点。
下面是他的代码:
Sub transpose()
Sheets(1).Select
lrow1 = Cells(Rows.Count, 1).End(xlUp).Row
For i = 1 To lrow1
nums = 2
Cells(i, nums).Select
Do Until IsEmpty(ActiveCell)
nums = nums + 1
Cells(i, nums).Select
Loop
Range(Cells(i, 2), Cells(i, nums)).Copy
Sheets(2).Select
lrow2 = Cells(Rows.Count, 2).End(xlUp).Row
Cells(lrow2 + 1, 2).Select
Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
False, transpose:=True
Sheets(1).Select
Cells(i, 1).Copy
Sheets(2).Select
Cells(lrow2 + 1, 1).Select
Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
False, transpose:=False
lrow3 = Cells(Rows.Count, 2).End(xlUp).Row
Cells(lrow2 + 1, 1).Select
Selection.AutoFill Destination:=Range(Cells(lrow2 + 1, 1), Cells(lrow3, 1)), Type:=xlFillDefault
Sheets(1).Select
Next i
Sheets(2).Select
Rows("1:1").Select
Selection.Delete Shift:=xlUp
End Sub
https://stackoverflow.com/questions/55839687
复制相似问题