excelmacros:对于一个行中的每个单元格,使用该值在下面插入一行

我有一个约700行,7列的工作表。 我需要每一行只有一个条目。 也就是说,如果行1在列A,B和C中具有单元值,则应创build两个新行,以便行1在列A中具有一个值,行2在列B中具有一个值,行3在列C中具有一个值。

我已经花了几个小时(可惜),但我很糟糕,我没有得到任何地方:

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 

我的问题是,这段代码删除它下面的行(这不会发生),它插入两行而不是一个。

万分感谢!

我将你的数据读入一个数组,删除工作表上的数据,然后回写到工作表的单个列中(同时检查空格)

例:

 Sub OneColumnData() Dim rng As Range, ids As Range, arr() As Variant, rw As Integer, col As Integer, counter As Integer Set rng = Range("A1:C5") Set ID = Range("G1:G5") arr = rng.Value counter = 1 rng.ClearContents For rw = 1 To UBound(arr, 1) For col = 1 To UBound(arr, 2) If arr(rw, col) <> vbNullString Then Range("A" & counter) = arr(rw, col) Range("B" & counter) = ID(rw) counter = counter + 1 End If Next col Next rw End Sub