2014-11-21 184 views
0

如何在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

回答

0

打開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

0

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

+0

toddmo,我的新手vba,你能解釋一下嗎,謝謝 – KGK 2014-11-21 07:22:13

相關問題