Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel VBA:复制一行,在上面插入一个单元格';s值已更改_Excel_Vba_Copy Paste - Fatal编程技术网

Excel VBA:复制一行,在上面插入一个单元格';s值已更改

Excel VBA:复制一行,在上面插入一个单元格';s值已更改,excel,vba,copy-paste,Excel,Vba,Copy Paste,我试图找到一种方法来复制已标识行的值,并在上面插入除一列之外具有相同值的行。如果可能的话,最好能找到一种方法来更改已识别行中的2个单元格。我是一个全新的尝试使用VBA的人,所以我还没走多远。。。目前我可以插入一个空行,但没有内容。希望让它更清楚,以下是我试图完成的步骤 在C列中,检查每一行,并识别/操作包含“ITEM1\u ITEM2”的每一行 在包含所有相同值的标识行上方(或下方?)插入行,但C列的值更改为“ITEM2”,H列的数值减半 标识的行的C列值更改为“ITEM1”,H列值也减半 转到

我试图找到一种方法来复制已标识行的值,并在上面插入除一列之外具有相同值的行。如果可能的话,最好能找到一种方法来更改已识别行中的2个单元格。我是一个全新的尝试使用VBA的人,所以我还没走多远。。。目前我可以插入一个空行,但没有内容。希望让它更清楚,以下是我试图完成的步骤

  • 在C列中,检查每一行,并识别/操作包含“ITEM1\u ITEM2”的每一行
  • 在包含所有相同值的标识行上方(或下方?)插入行,但C列的值更改为“ITEM2”,H列的数值减半
  • 标识的行的C列值更改为“ITEM1”,H列值也减半
  • 转到下一个标识为“ITEM1\u ITEM2”的行,并完成相同的操作
  • 任何帮助都将不胜感激。我甚至不需要完成所有的步骤。。。即使只是弄清楚如何在插入的行中复制/粘贴单元格也会有所帮助。谢谢

    Public Sub sortICs()
    
        Dim bottom As Long, top As Long
        Dim row As Long
        
        With ActiveSheet
            top = 1
            bottom = .UsedRange.Rows(.UsedRange.Rows.Count).row
                
            For row = bottom To top Step -1
                If .Range("C" & row).Value = "ITEM1_ITEM2" Then
                    .Range("C" & row).EntireRow.Insert
                End If
            Next row
        End With
        
    End Sub
    
    这将有助于:

    Public Sub-sortICs()
    暗底一样长,顶一样长
    尺寸rw作为范围,新行作为范围,x,i作为长度
    使用ActiveSheet.UsedRange
    对于i=.Rows.Count到2,步骤-1'向后工作,这样在插入行时就不会干扰
    设置rw=.Rows(i)
    如果rw.Columns(“C”).Value=“ITEM1\u ITEM2”,则
    rw.偏移量(1,0).插入
    将newRow=rw.Offset(1,0)'设置为刚插入的行
    rw.复制新行
    rw.列(“C”).Value=“ITEM1”
    newRow.Columns(“C”).Value=“ITEM2”
    x=rw.列(“H”).值/2
    rw.列(“H”)。值=x
    newRow.Columns(“H”).Value=x
    如果结束
    接下来我
    以
    端接头
    
    您是否尝试录制复制行和插入行的宏?这将为您提供基本语法。如果你在复制上面的内容,我会向前循环,而不是向后循环。