Excel VBA-将一行数据拆分为多行

Excel VBA-将一行数据拆分为多行,vba,excel,Vba,Excel,我试图获取一个excel文件,查看已填充的列,然后将一个excel行中的数据拆分为不同的行,并在此过程中使用VB删除某些列。我认为如果你看下面的图片会更有意义 下面是我试图分割的图像 下面是我希望如何将其拆分的图像 如果有人可以帮助我的VB代码,这将是伟大的。我是VB新手,正在努力学习。以下代码如何: Sub Format() lastrow = ActiveSheet.UsedRange.Rows.Count For x = lastrow To 2 Step -1 If R

我试图获取一个excel文件,查看已填充的列,然后将一个excel行中的数据拆分为不同的行,并在此过程中使用VB删除某些列。我认为如果你看下面的图片会更有意义

下面是我试图分割的图像

下面是我希望如何将其拆分的图像


如果有人可以帮助我的VB代码,这将是伟大的。我是VB新手,正在努力学习。

以下代码如何:

Sub Format()

lastrow = ActiveSheet.UsedRange.Rows.Count

For x = lastrow To 2 Step -1

    If Range("G" & x).Value <> "" Then
        Rows(x + 1).Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
        Range("A" & x + 1 & ":D" & x + 1).Value = Range("A" & x & ":D" & x).Value
        Range("E" & x + 1).Value = Range("G" & x).Value
        Range("G" & x).Value = ""
    End If

    If Range("F" & x).Value <> "" Then
        Rows(x + 1).Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
        Range("A" & x + 1 & ":D" & x + 1).Value = Range("A" & x & ":D" & x).Value
        Range("E" & x + 1).Value = Range("F" & x).Value
        Range("F" & x).Value = ""
    End If

Next x

End Sub
子格式()
lastrow=ActiveSheet.UsedRange.Rows.Count
对于x=lastrow到2步骤-1
如果范围(“G”&x).值为“”,则
行(x+1)。插入Shift:=xlDown,CopyOrigin:=xlFormatFromLeftOrAbove
范围(“A”&x+1&“:D”&x+1)。值=范围(“A”&x&“:D”&x)。值
范围(“E”&x+1)。值=范围(“G”&x)。值
范围(“G”和x)。值=“”
如果结束
如果范围为(“F”&x).值为“”,则
行(x+1)。插入Shift:=xlDown,CopyOrigin:=xlFormatFromLeftOrAbove
范围(“A”&x+1&“:D”&x+1)。值=范围(“A”&x&“:D”&x)。值
范围(“E”&x+1)。值=范围(“F”&x)。值
范围(“F”和x)。值=“”
如果结束
下一个x
端接头

您是否已经尝试编写一段可以共享的代码?谢谢。这很有帮助。谢谢。我添加了删除F列和G列的代码,这样在代码运行时就不会留下任何标题。@Gary不用担心,很乐意提供帮助。您也可以只执行do范围(“F1:G1”).Value=“”来清除标题。