2017-07-13 128 views
0

我與代碼掙扎,這應該複製的細胞,並將其粘貼到下面的行(它下面的一行是空的/如果沒有它會搜索其他行)VBA - 粘貼爲值

Sub CopyRows2() 

Dim LastRow As Long 

With Worksheets("OUTPUT") ' <-- here should be the Sheet's name 
    LastRow = .Cells(.Rows.Count, "O").End(xlUp).Row ' last row in column B 

For i = 2 To LastRow 
If Range("O" & i) > "" And Range("O" & i + 1) = "" Then 
    Range("O" & i).Copy 
    Range("O" & i + 1).Select 
    ActiveSheet.Paste 
    Application.CutCopyMode = False 
Else 
    End If 
Next 

End With 

ActiveWindow.ScrollRow = 1 'scrolling the screen to the top 

End Sub 

這樣,它工作正常,但在上面的單元格是公式,因此我只需要複製值,因爲結果應該是相同的。我發現,我應該代替這部分:此部分

ActiveSheet.Paste 

ActiveSheet.PasteSpecial xlPasteValues 

但是,一旦我做到了,它給我一個錯誤味精運行時錯誤1004並且該宏在複製第1個單元格後已經被刪除,然後找到空單元格...但它沒有插入該值並且沒有繼續搜索。

請問你能否幫忙?我在那裏錯過了什麼?我無法看到這個錯誤。

謝謝!

+0

你需要說出哪裏粘貼例如Range(「A1」)。PasteSpecial xlPasteValues – areklipno

回答

0

工作對我來說:

Range("O" & i).Copy 
Range("O" & i + 1).PasteSpecial xlPasteValues 
Application.CutCopyMode = False 

沒有必要在這裏選擇。

+0

嗯,你是對的!非常感謝您的幫助 – Srpic

0

你應該嘗試把代碼放在一個模塊中,而不是放在表單中!