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

问题描述:

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

这是数据看起来的样子

enter image description here

,这我怎么想落得。

enter image description here

更新:下面我想复制合并到行代码,列没有176,177,178,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 
+0

变化__OutSheet.Cells(Out_i,176)= .Cells(R,I)__到__OutSheet.Cells(Out_i,2)= .Cells(R,I)__ – Radek 2014-11-23 16:52:11

打开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 
+0

谢谢!几乎在那里,但我有大约20列,我想分开只有三列,例如Col G,K,L,我希望保持一切。 – KGK 2014-11-22 01:06:46

+0

内部循环遍历列。您可以将其更改为_对于阵列(3,5,6,8,9)中的每个i,获取您想要的任何列。 – Radek 2014-11-22 10:16:44

+0

我想合并cols开始176-180它工作正常,但它删除或不显示在第1和第176列之间的列上的单元格的所有内容 – KGK 2014-11-23 00:04:20

MyRange.Offset(RowOffset, ColumnOffset).Value = MyRange.Value

+0

toddmo,我的新手vba,你能解释一下吗,谢谢 – KGK 2014-11-21 07:22:13