2017-07-13 129 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

你应该尝试把代码放在一个模块中,而不是放在表单中!