Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/26.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
Vba 如何在excel中复制行并将值从一个单元格复制到另一个单元格?_Vba_Excel - Fatal编程技术网

Vba 如何在excel中复制行并将值从一个单元格复制到另一个单元格?

Vba 如何在excel中复制行并将值从一个单元格复制到另一个单元格?,vba,excel,Vba,Excel,如何使用VBA或条件语句在excel中复制行3或4次,然后将值从一个单元格复制并粘贴到另一个单元格 这就是数据的样子 这就是我想要的结局 更新:在下面的代码中,我想将merge复制到第176、177178、179、180行,效果很好,但是删除了1列和176列之间的所有列 Sub SortMacro() Dim SourceSheet As Worksheet Dim OutSheet As Worksheet Set SourceSheet = ActiveSheet Set OutShe

如何使用VBA或条件语句在excel中复制行3或4次,然后将值从一个单元格复制并粘贴到另一个单元格

这就是数据的样子

这就是我想要的结局

更新:在下面的代码中,我想将merge复制到第176、177178、179、180行,效果很好,但是删除了1列和176列之间的所有列

Sub SortMacro()
 Dim SourceSheet As Worksheet
 Dim OutSheet As Worksheet

Set SourceSheet = ActiveSheet
Set OutSheet = Sheets.Add

With SourceSheet
Out_i = 1
 For r = 1 To .Cells(Rows.Count, 176).End(xlUp).Row
    For i = 176 To 180     'or For each i in Array(3,4,5)
        OutSheet.Cells(Out_i, 1) = .Cells(r, 1)
        OutSheet.Cells(Out_i, 176) = .Cells(r, i)
        Out_i = Out_i + 1
    Next
 Next
End With
End Sub

MyRange.OffsetRowOffset,ColumnOffset.Value=MyRange.Value

打开VBA edior Alt-F11。创建新的VBA模块rightclik到VBA项目,插入,模块。将此代码复制到新模块。使用源数据运行代码选择表,然后单击VBA代码文本中的任意位置,然后按F5

Sub SortMacro()
Dim SourceSheet As Worksheet
Dim OutSheet As Worksheet

Set SourceSheet = ActiveSheet
Set OutSheet = Sheets.Add

With SourceSheet
    Out_i = 1
    For r = 1 To .Cells(Rows.Count, 1).End(xlUp).Row
        For i = 3 To 5     'or For each i in Array(3,4,5) 
            OutSheet.Cells(Out_i, 1) = .Cells(r, 1)
            OutSheet.Cells(Out_i, 2) = .Cells(r, i)
            Out_i = Out_i + 1
        Next
    Next
End With
End Sub

谢谢差不多了,但我有大约20列,我只想分开三列,例如G列,K列,L列,我想保持所有内容不变,内部循环通过列循环。您可以将其更改为For each i in Array3,5,6,8,9,以获得所需的任何列。我希望合并从176-180开始的列。它工作正常,但会删除或不显示第1列和第176列之间列上的所有单元格内容。change OutSheet.CellsOut_i,176=.Cellsr,i to OutSheet.CellsOut_i,2=.Cellsr,i