我有一个包含〜700行和7列的工作表。我需要每一行只有一个条目。即如果行1在列A,B和C中具有单元值,则应创建两个新行,以便行1在列A中具有一个值,行2在列B中具有一个值,行3在列C中具有一个值。excel宏:对于每行中具有值的单元格,使用该值在下面插入一行
我已经花了几个小时,在此(可惜),但我很不好,我不成气候:
Sub TThis()
Dim rng As Range
Dim row As Range
Dim cell As Range
'just testing with a basic range
Set rng = Range("A1:C2")
For Each row In rng.Rows
For Each cell In row.Cells
If cell.Value <> "" Then
'write to adjacent cell
Set nextcell = cell.Offset(1, 0)
nextcell.Value = cell.Value
nextcell.EntireRow.Insert
End If
Next cell
Next row
End Sub
我的问题是,这个代码删除了该行其下(这是不假设发生) 并且它插入两行而不是一行。
谢谢!
最简单的方法是将A1转换为D1,将B1转换为D2,将C1转换为D3等。然后,完成后,您将删除前三列。 Voilà,你的范围是A.你让我为你写一个快速程序来证明这一点。 – Sifu
太棒了!但是,我忘了提到一些相当重要的东西:每行都有一个G中提到的ID 9,当你将A1的值传递给D1等时,是否可以给G中的新行赋予相同的ID? – user3776607
没有想到我的小小快速程序,亚历克斯P速度更快,并有比我更好的答案! – Sifu